1

我在做一个非常简单的任务时遇到了一些麻烦。我的 Windows 窗体上有一个富文本框,我试图在任何按钮点击之外访问它。我已经意识到控件不是“公共的”,我不能只在代码中我想更改它的地方调用它。

我得到的错误是:非静态字段、方法或属性需要对象引用。我知道这是一个非常新手的问题,但我尝试了很多方法来解决这个问题,但我无法弄清楚。有人可以帮忙吗?

代码是

public static void SeeIfFinished()
{
   if (FinishedThreadCount == 1)
   {
      richTextBox1.Text = "text";
   }
}
4

3 回答 3

5

您的方法是静态的 - 删除static修饰符,并通过引用表单的特定实例来调用它:

myForm.SeeIfFinished();

或者如果您的调用代码在表单类中,只需:

SeeIfFinished();
于 2012-06-08T03:58:23.953 回答
1

您无法访问静态方法内的实例化对象。

将代码放在未用 static 关键字标记的方法中。

于 2012-06-08T03:58:40.800 回答
1

静态方法只能查看其类的静态成员以及作为参数传入的任何内容。 richTextBox1不是窗口类的静态成员,因此不能在静态方法中引用。

为您的静态方法添加一个参数(RichTextBox richTextBox)。当您调用静态窗口方法时,传入 arichTextBox1并且它应该可以工作。

于 2012-06-08T04:03:42.100 回答