请求赐教:初学C#的两个问题
1.有一段代码,需要它在窗体和窗体上的控件显示后执行,应该把它放在哪里呢?
1)如把它放在构造函数里,执行时窗体还未显示;
2)如把它放在Form_Load事件里,执行时窗体还是没有显示;
3)如把它放在Form_Shown事件里,执行时窗体虽显示了,但窗体上的控件仍未显示。
2.有一段代码,它根据执行状态相应修改窗体上已显示的label控件:
/// > > 正在检测网络连接...
/// 正在连接网络...
/// 网络已连接,请进行登录验证:
///label_04.Text= "> > "
///label_05.Text= "正在检测网络连接... "
///label_06.Text= "正在连接网络... "
///label_07.Text= "网络已连接,请进行登录验证: "
private void TestAndLinkNetwork()
{
//延时,以后将放置网络硬件测试代码;
for (ulong i = 0; i < 399999999; i++) ;
//label控件属性第一次改变;
label_05.Enabled = false;
label_04.Top += 16;
label_06.Enabled = true;
//延时,以后将放置网络连按代码;
for (ulong i = 0; i < 399999999; i++) ;
//label控件属性第二次改变;
label_06.Enabled = false;
label_04.Top += 16;
label_07.Enabled = true;
}
实际执行时,不论延时长短,窗体上总是直按显示label控件属性第二次改变后的结果,而label控件属性第一次改变的结果总是不能被正确显示出来。即使在每次属性改变后加label.Show也无济于事。
小弟初学,敬请赐教,不胜感谢!
------解决方案--------------------for (ulong i = 0; i < 399999999; i++) ;
这种延时可不好,对C#来说,我可能在几毫秒就执行完了,你可以用Thread的Sleep()来试试
------解决方案--------------------或者用mutex中的waitOne( 1000 )来试试
------解决方案--------------------在C#里面:
for (ulong i = 0; i < 399999999; i++) ;
这种循环会被“优化”,即便 i < long.maxvalue 也就是眨眼的事情。
------解决方案--------------------第一个问题: