gpt4 book ai didi

winforms - 使用 DateTimePicker CustomFormat MMM-yyyy 时避免无法表示的 DateTime

转载 作者:行者123 更新时间:2023-12-02 19:01:06 25 4
gpt4 key购买 nike

假设我有一个 CustomFormat 为 MMM-yyyy 的 DateTimePicker,其值已初始化为 2013 年 10 月 31 日,则将显示为 2013 年 10 月。

如果选择控件的 Oct 部分并按向上或向下箭头,则会生成 ArgumentOutOfRangeException - 年、月和日参数描述了无法表示的日期时间强>.

大概是改月不改日,9月和11月只有30天。请注意,如果 CustomFormat 为 dd-MMM-yyyy,则不会引发错误,因为日期会自动更改为 30 号。

如何避免或捕获此错误?

我可以添加代码以确保 DateTimePicker 始终初始化为一个月的第一天,但​​我希望允许用户从日历下拉列表中选择月份和日期,因此我需要处理以下情况:用户手动选择了 31 日,然后尝试使用键盘更改月份。

最佳答案

只需将其初始化为 10 月 1 日即可。没有异常(exception),仍然是相同的显示。

当然,您需要调整用户选择的值以将其保留在第一:

    private void dateTimePicker1_ValueChanged(object sender, EventArgs e) {
var dtp = (DateTimePicker)sender;
dtp.Value = new DateTime(dtp.Value.Year, dtp.Value.Month, 1);
}

关于winforms - 使用 DateTimePicker CustomFormat MMM-yyyy 时避免无法表示的 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19159221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com