我正在使用窗口应用程序和C#..我有一张在应用程序开始时看不见的图片..当点击某个按钮时,必须显示图片框..
我使用此编码,但图片框不可见
private void btnsearch_Click(object sender, EventArgs e)
{
if (cmbproject.Text == "---Select---")
{
MessageBox.Show("Please Select Project Name");
return;
}
else
{
pictureBox1.Visible = true;
pictureBox1.BringToFront();
pictureBox1.Show();
FillReport();
Thread.Sleep(5000);
pictureBox1.Visible = false;
}
}
答案 0 :(得分:2)
不要使用Sleep
- 阻止线程,这意味着不会处理任何Windows消息,并且您的表单不会重新绘制。
相反,您可以使用Timer
在5秒后隐藏图像。
在表单中添加一个计时器,并将代码更改为:
pictureBox1.Visible = true;
FillReport();
timer1.Interval = 5000;
timer1.Start();
在计时器事件中:
private void Timer1_Tick(object sender, EventArgs e) {
pictureBox1.Visible = false;
timer1.Stop();
}
现在您的图像应该可见5秒钟。
但是,在FillReport
执行时,表单仍然不会重新绘制。如果您需要在此时看到图像,我建议使用BackgroundWorker
执行FillReport
,以便它不会阻止UI线程。然后,您可以在RunWorkerCompleted
事件中隐藏图像。