繁体   English   中英

如何设置最大和最小日期/时间选择器的范围

[英]How to set a range for the Max and Min Date/Time Picker

我想知道如何为 C sharp windows forms 中的日期时间选择器元素设置最大日期时间选择。 我想限制日期可以在过去或将来有多远,但我不知道该怎么做。 我不知道我的代码是否有用,但无论如何我已将其附在此处。 提前致谢。

为了简要了解程序正在做什么,对于我的课程,我必须制作一个带有 sql 表的系统,该表可以执行各种功能,这个范围问题是针对项目中的预订表单,因此用户可以 select a他们想要使用的预订时段的日期和时间,所以我想有一个限制 - 理想情况下,用户不应该能够创建一个过去日期的预订,他们也不应该能够创建一个预订未来一段荒谬的时间,比如50年的时间。

非常感谢任何帮助,我理解这对于一些更有经验的编码人员来说是否是一个简单的问题。 谢谢。

public partial class AddBooking : Form
{
    private int count;
    private Boolean IsEmpty = false;
    private static string _connectionstring = ConfigurationManager.ConnectionStrings["DoggieConnectionString"].ConnectionString;
    
    public AddBooking()
    {
        InitializeComponent();
        CenterToScreen();
        GenerateBookingNumber();
        IDDisplay.Text = "" + count;
        dateTimePicker2.Format = DateTimePickerFormat.Custom;
        dateTimePicker2.CustomFormat = "HH:mm tt";
        dateTimePicker2.ShowUpDown = true;
        DateTime now = DateTime.Now;
    }

    private void AddBooking_Load(object sender, EventArgs e)
    {
    }

    private int GenerateBookingNumber()
    {
        string smt = "SELECT COUNT(*) FROM dbo.Booking";
        count = 0;

        using (SqlConnection connection = new SqlConnection(_connectionstring))
        {
            using (SqlCommand cmdCount = new SqlCommand(smt, connection))
            {
                connection.Open();
                count = (int)Convert.ToInt32(cmdCount.ExecuteScalar());
            }
        }

        count = count + 4;
        return count;
    }

    private void PresenceCheck()
    {
        if (string.IsNullOrEmpty(WalkLocationtxt.Text) || string.IsNullOrEmpty(StaffIDtxt.Text))
        {
            IsEmpty = true;
        }
        else
        {
            IsEmpty = false;
        }
    }

    private void SubmitInfobtn_Click(object sender, EventArgs e)
    {
       // MessageBox.Show("welcome " + dateTimePicker1.Value.ToShortDateString());
       // MessageBox.Show("Goodddd" + dateTimePicker2.Value.ToShortTimeString());
        PresenceCheck();

        if (IsEmpty == false)
        {
            int rowsareaffected = ClassDatabase.AddBookingDetails(Convert.ToInt32(IDDisplay.Text), dateTimePicker1.Value.ToShortDateString(), dateTimePicker2.Value.ToShortTimeString(), Convert.ToInt32(StaffIDtxt.Text), WalkLocationtxt.Text);

            if (rowsareaffected > 0)
            {
                MessageBox.Show("New Booking Added Sucessfully", "Sucess!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                
                StaffIDtxt.Clear();
                WalkLocationtxt.Clear();
                
                GenerateBookingNumber();

                IDDisplay.Text = "" + count;
            }
            else
            {
                MessageBox.Show("An Error Occurred", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }

    private void returnToMenuToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new MenuScreen().Show();
        this.Close();
    }

    private void logOutToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new LoginScreen().Show();
        this.Close();
    }

    private void exitSystemToolStripMenuItem_Click(object sender, EventArgs e)
    {
        DialogResult Result = MessageBox.Show("Are you sure you want to Exit the JD Dog Care Program?", "Are You Sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Hand);

        if (Result == DialogResult.Yes)
        {
            Application.Exit();
        }
        else
        {
        }
    }

    private void addClientToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new AddClient().Show();
        this.Close();
    }

    private void manageClientsToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new ViewClient().Show();
        this.Close();
    }

    private void addDogsToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new AddDog().Show();
        this.Close();
    }

    private void manageDogsToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new ViewDog().Show();
        this.Close();
    }

    private void addStaffToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new AddStaff().Show();
        this.Close();
    }

    private void manageStaffToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new ViewStaff().Show();
        this.Close();
    }

    private void addBookingToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new AddBooking().Show();
        this.Close();
    }

    private void manageBookingToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new ViewBooking().Show();
        this.Close();
    }

    private void addDogToBookingToolStripMenuItem_Click(object sender, EventArgs e)
    {
        new DogToWalk().Show();
        this.Close();
    }
}

您可以设置 DateTimePicker 的 Min 和 Max 属性:

DateTime now = DateTime.Now;
DateTime minDate = now.AddYears(-50)
DateTime maxDate = now.AddYears(50)

dateTimePicker.MinDate = minDate 
dateTimePicker.MaxDate = maxDate 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM