跨线程操作无效-集中的Richtextbox中的Timer事件

好的,所以我想尝试一些事情。只是一个有趣的小项目。您在Richtextbox中键入内容,它会获得特定的颜色,例如语法。我的代码如下:

public Form1()
    {
        InitializeComponent();

        var startTimeSpan = TimeSpan.Zero;
        var periodTimeSpan = TimeSpan.FromSeconds(3);

        var timer = new System.Threading.Timer((e) =>
        {
            SyntaxCheck();
        },null,startTimeSpan,periodTimeSpan);
    }

    public void SyntaxCheck()
    {
        string ConsoleFieldInput = ConsoleField.Text;
        if (ConsoleFieldInput.Contains("!format") == true)
        {
            ConsoleField.Select(ConsoleField.Text.IndexOf("!format"),"!format".Length);
            ConsoleField.SelectionColor = Color.Aqua;
        }
        if (ConsoleFieldInput.Contains("console") == true)
        {
            ConsoleField.Select(ConsoleField.Text.IndexOf("console"),"console".Length);
            ConsoleField.SelectionColor = Color.Red;
        }
    }

关于如何解决此问题的任何想法?错误:

  

跨线程操作无效:控制'ConsoleField'是从不是在其上创建线程的线程访问的。

abiaoa 回答:跨线程操作无效-集中的Richtextbox中的Timer事件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2876242.html

大家都在问