如何在 C# 中使用 foreach 循环更改 Winforms 中多个 DateTimePicker 字段的 CustomFormat?

How to change CustomFormat of multiple DateTimePicker fields in Winforms using foreach loop in c#?

我正在尝试更改 Winforms 表单中多个 DateTimePicker 组件的 CustomFormat。但是,当我创建 foreach 循环时,我无法选择更改 CustomFormat。这是代码:

foreach (Control ctrl in this.Controls)
            {
                if(ctrl is DateTimePicker)
                {
                    ctrl.CustomFormat = "yyyy-MM-dd"; 
                }
            }

我收到错误:“'Control' 不包含 'CustomFormat' 的定义并且没有可访问的扩展方法 'CustomFormat' 接受类型 'Control' 的第一个参数可能是找到(您是否缺少 using 指令或程序集引用?)”。

我正在使用 VS 2022 和 .NET CORE 6(最新稳定版)。

我们非常欢迎对此提供任何帮助。

那是因为您仍在使用类型为 Control 的变量“ctrl”,而不是 DateTimePicker

foreach (Control ctrl in this.Controls)
{
    if(ctrl is DateTimePicker dtp)
    {
        dtp.CustomFormat = "yyyy-MM-dd"; 
    }
}

应该可以正常工作。