Csharp/C#教程:DateTimePicker永远不会更新!分享


DateTimePicker永远不会更新!

我有一些永远不会更新的DateTimePicker
我尝试过ValueTextInvalidate()然后Update()以及Refresh()

从目前的日期看,似乎没有任何改变它们的价值!
无论我设置什么,当前的日期都是(相对)今天的!

这是一个.NET 3.5错误还是什么?
(不,我不能在这个项目中使用.NET 4。)


如果你真的想要一些代码,那么这里是: dateTimePicker1.Value = user.BirthDay; 。 另外,如果我写MessageBox.Show(user.BirthDay.ToString()); 我得到一个漂亮的盒子告诉用户的生日(我的生日,在我的机器上)。 (所以变量中有一个值…)


我是否还应该提到它们仅适用于日期而非时间?


好的,我知道我需要写更多:

首先,更新控件的方法是订阅Form.Load事件。 因此,当窗体和控件可见并且“正在运行”时,它会被调用/ fired / invoked。

其次,看看这段代码及其结果:

 MessageBox.Show(user.BirthDay.ToString()); // Shows 12.12.1995 (in my regional format) dateTimePicker1.Value = user.BirthDay; // assigned to 12.12.1995 MessageBox.Show(dateTimePicker1.Value.ToString()); // Shows today's date! 

这不好……输出是今天的日期。 (到今天我的意思是代码运行的那一天。)

 dateTimePicker1.MinDate = new DateTime(1900,1,1); // January 1st, 1900 MessageBox.Show(dateTimePicker1.MinDate.ToString()); // January 1st, 1753 ... 

控制不好! 1900年不等于1753年!

 dateTimePicker1.MaxDate = DateTime.Today; // In reality, I need it to today's date MessageBox.Show(dateTimePicker1.MinDate.ToString()); // December 31st, 9998 

时间扭曲? O_O

无论如何,整个代码看起来像这样:

 public void Form_Load(object sender, EventArgs e) { this.user = User.Load(path); // this.user is a field. // path is a static field which holds the absolute path of the file in which is serialized that data of the user. MessageBox.Show(user.BirthDay.ToString()); // Shows 12.12.1995 (in my regional format) dateTimePicker1.Value = user.BirthDay; // assigned to 12.12.1995 MessageBox.Show(dateTimePicker1.Value.ToString()); // Shows today's date! dateTimePicker1.MinDate = new DateTime(1900,1,1); // January 1st, 1900 MessageBox.Show(dateTimePicker1.MinDate.ToString()); // January 1st, 1753 ... dateTimePicker1.MaxDate = DateTime.Today; MessageBox.Show(dateTimePicker1.MinDate.ToString()); // December 31st, 9998 } 

那么,任何解决方案? XC

一个小麻烦有这个麻烦:我的问题是我将DateTimePicker设置为checked = false和(错误地)ShowCheckbox = false; 通过这种设置,我可以将DTPicker设置为我想要的任何值,但它不会使用自己。

对于不更新其可视外观的表单的标准诊断,但您看到使用调试器更新的属性更新是使用错误的表单实例。 像这样举例如:

 var frm = new Form1(); // Wrong!! frm.UpdateBirthDay(user.BirthDay); 

通过改变你的代码来诊断这个:

上述就是C#学习教程:DateTimePicker永远不会更新!分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 dateTimePicker1.Value = user.BirthDay; this.Show(); // <=== add this 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1025440.html

(0)
上一篇 2022年1月8日
下一篇 2022年1月8日

精彩推荐