如何在显示表单后运行代码? (麻烦“显示”。)
我以为Shown
就是答案。 但似乎并非所有控制都是平等的。 一个面板立即显示,而标签 – 不是。
我有以下代码:
public partial class Form2 : Form { Panel p = new Panel() { BackColor = Color.Green }; Label l = new Label() { Text = "abc", Location = new Point(0, 100) }; public Form2() { Controls.Add(p); Controls.Add(l); Shown += new EventHandler(Form2_Shown); } void Form2_Shown(object sender, EventArgs e) { System.Threading.Thread.Sleep(2000); } }
最初,这表明:
2秒后 – 这个:
那么如何在“第二张图片”之后运行代码呢?
void Form2_Shown(object sender, EventArgs e) { Application.DoEvents(); System.Threading.Thread.Sleep(2000); }
我认为这可以得到你想要的东西,但恕我直言,如果你有一个漫长的操作,你应该开始另一个线程。
在事件处理程序的开头添加以下内容:
this.Update();