可以';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,效果很好。可能是什么问题??

可以';t写入richTextBox

您的问题如下:计时器的事件处理程序运行在与UI类似的其他线程上。您需要调用类似的控件

if(richTextBox1.InvokeRequired == true)
{
    richTextBox1.Invoke((MethodInvoker)delegate
    {
      richTextBox1.Text = "t3 is elapsed "
    });
}
else
{
    richTextBox1.Text = "t3 is elapsed ";
}

以正确访问它。这是因为UI对象与其线程相关。例如,在每个线程中都可以创建MessageBox,因为您的Box还不存在。