c# - 为以编程方式创建的 DateTimePicker 创建事件

标签 c# winforms datetimepicker

我以编程方式创建了一个 DateTimePicker,如下所示:

Controls.Add(new DateTimePicker { Name = "txtPaymentDate", 
                                  Location = new Point(146, 232),
                                  Size = new Size(113, 20),
                                  Format = DateTimePickerFormat.Custom,
                                  CustomFormat = " ", TabStop = false });

如果 DateTimePicker 未打开,它将没有默认日期。但每当我使用关闭事件选择日期时,我都想更改日期时间格式。但是,由于 DateTimePicker 是手动创建的,我不知道如何为其创建事件。

如何为其创建事件?

最佳答案

你可以这样做

DateTimePicker myPicker = new DateTimePicker { Name = "txtPaymentDate", 
                                               Location = new Point(146, 232), 
                                               Size = new Size(113, 20), 
                                               Format = DateTimePickerFormat.Custom, 
                                               CustomFormat = " ", 
                                               TabStop = false };
myPicker.CloseUp += myPicker_CloseUp;

Controls.Add(myPicker);

private void myPicker_CloseUp(object sender, EventArgs e)
{
    if (sender is DateTimePicker)
    {
       ((DateTimePicker)sender).Format = 'dd-MM-yyyy'; 
    }
}

如果您希望事件只为特定的 DateTimePicker(按名称)执行操作,您可以这样做:

private void myPicker_CloseUp(object sender, EventArgs e)
{
    if (sender is DateTimePicker)
    {
       if (DateTimePicker)sender).Name == "txtPaymentDate")
           ((DateTimePicker)sender).Format = 'dd-MM-yyyy'; 
    }
}

关于c# - 为以编程方式创建的 DateTimePicker 创建事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011776/

相关文章:

javascript - 如何在 DateTimePicker JavaScript 中查找今天的日期?

c# - Entity Framework 中的 LINQ to SQL 查询问题

c# - Winform C# Datagridview paint header

c# - 引用组合框中的值时 LINQ 查询出错

datetimepicker - 在 DateTimePicker 中设置小时超过 23

winapi - 有没有办法在日期时间选择器 (DTP) 中获取输入字段的句柄?

javascript - Json.Parse 转义换行符

c# - 异步运行两个任务

c# - C#中的字节操作

c++ - 为什么我不能在 ATL 对话框中托管的 Winform 中输入文本?