可以';t写入richTextBox
本文关键字:写入 richTextBox 可以 | 更新日期: 2023-09-27 17:58:01
我有一个简单的程序:
private static System.Timers.Timer t3;
private void button1_Click(object sender, EventArgs e)
{
t3 = new System.Timers.Timer(5000);
t3.AutoReset = true; t3.Enabled = true; t3.Elapsed += OnTimedEvent3;
}
private void OnTimedEvent3(Object source, ElapsedEventArgs e)
{
// MessageBox.Show("event raised");
richTextBox1.Text = "t3 is elapsed ";//
}
问题::事件触发后,richTextBox1
中不显示任何内容!我试过MessageBox
,效果很好。可能是什么问题??
您的问题如下:计时器的事件处理程序运行在与UI类似的其他线程上。您需要调用类似的控件
if(richTextBox1.InvokeRequired == true)
{
richTextBox1.Invoke((MethodInvoker)delegate
{
richTextBox1.Text = "t3 is elapsed "
});
}
else
{
richTextBox1.Text = "t3 is elapsed ";
}
以正确访问它。这是因为UI对象与其线程相关。例如,在每个线程中都可以创建MessageBox,因为您的Box还不存在。