C#如何在线程中调用Form1_Paint()就是在线程中定时调用Form1_Paint()不知道可不可以?...
C#如何在线程中调用Form1_Paint()
就是在线程中定时调用 Form1_Paint() 不知道可不可以 ?
C#如何在线程中调用Form1_Paint()
答案:1 悬赏:80 手机版
解决时间 2021-01-03 23:44
- 提问者网友:未信
- 2021-01-03 10:36
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-01-07 04:56
可以实现。 ///
/// 按钮单击事件:创建一个线程
///
///
///
private void button1_Click(object sender, EventArgs e)
{
Send = sender;
Args=e;
CheckForIllegalCrossThreadCalls = false;//在线程中可以对窗体控件进行操作
Thread myThread = new Thread(new ThreadStart(PainForm));//创建一个线程实例
myThread.IsBackground = true;//线程设置为后台线程
myThread.Start();
}
private object Send;//参数1
private EventArgs Args;//参数2
///
/// 定时调用窗体Paint事件的线程
///
private void PainForm()
{
while (true)
{
Thread.Sleep(5000);//线程中,每隔5秒调用Form1_Paint()
Form1_Paint(Send, Args);
}
}
///
/// 窗体的Paint事件
///
///
///
private void Form1_Paint(object sender, EventArgs e)
{
MessageBox.Show("Paint事件");
this.Text = "Paint事件";
}
/// 按钮单击事件:创建一个线程
///
///
///
private void button1_Click(object sender, EventArgs e)
{
Send = sender;
Args=e;
CheckForIllegalCrossThreadCalls = false;//在线程中可以对窗体控件进行操作
Thread myThread = new Thread(new ThreadStart(PainForm));//创建一个线程实例
myThread.IsBackground = true;//线程设置为后台线程
myThread.Start();
}
private object Send;//参数1
private EventArgs Args;//参数2
///
/// 定时调用窗体Paint事件的线程
///
private void PainForm()
{
while (true)
{
Thread.Sleep(5000);//线程中,每隔5秒调用Form1_Paint()
Form1_Paint(Send, Args);
}
}
///
/// 窗体的Paint事件
///
///
///
private void Form1_Paint(object sender, EventArgs e)
{
MessageBox.Show("Paint事件");
this.Text = "Paint事件";
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯