当DateTimePicker位于选项卡上时,丢失的焦点不会更新该值

时间:2014-01-09 17:03:16

标签: c# tabcontrol datetimepicker

我遇到DateTimePicker的问题, 我为每个DateTimePickertab control上添加了3 tabitem。 现在我按时间设定

dateTimePicker1.Text="1:00";
dateTimePicker2.Text="2:00";
dateTimePicker3.Text="3:00";

在第一个标签中,DateTimePicker正常工作

MessageBox.Show(dateTimePicker1.Text); //Show "01:00"

但是当我想阅读时dateTimePicker2.Text显示我是空的 但当我点击第二个标签时,它工作正常,并显示“02:00”

我的问题是什么?

2 个答案:

答案 0 :(得分:1)

我会在对象生命周期事件上查看此页面,特别是已加载部分。我相信,因为DatePicker位于第二个选项卡上,直到它可见并加载它将没有正确的值。

http://msdn.microsoft.com/en-us/library/ms754221.aspx

答案 1 :(得分:1)

U gonne必须预先加载标签,因为它上面的控件尚未启动。

这样的东西会起作用

 private void Form1_Load(object sender, EventArgs e)
 {
     // Preload tabs
     tabControl1.SelectedTab = tabPage3;
     tabControl1.SelectedTab = tabPage2;
     // Select tab 1
     tabControl1.SelectedTab = tabPage1;
     // Set values
     dateTimePicker1.Text = "1:00";
     dateTimePicker2.Text = "2:00";
     dateTimePicker2.Text = "3:00";

 }

更好的是,您可以为每个要预加载的选项卡使用tabPage.show()。

 // Preload tabs
 tabPage3.Show();
 tabPage2.Show();
 // Select tab 1
 tabPage1.Show();