【发布时间】:2021-11-20 20:43:25
【问题描述】:
主类 WriteIt(string text) 中有一个方法与 GUI 中的 RichTextBox rtBox 通信。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static void WriteIt(string text)
{
rtBox.Text = text + "/n" + rtBox.Text;
}
}
我想像这样从其他类调用这个方法:
class Register
{
public int balance = 0;
public static void ListIt()
{
Form1.WriteIt("Money: " + balance);
}
}
它给了我一个错误:
CS0120:非静态字段需要对象引用, 方法或属性“Form1.rtBox”
由于程序的性质,我无法使 ListIt() 成为非静态方法。我尝试了一些我在这里看到的类似解决方案,但它们对我不起作用。我该怎么办?
【问题讨论】:
-
“由于程序的性质,我无法使 ListIt() 成为非静态方法。”那么,如果有多个 Form1 实例,您期望会发生什么?您希望哪一个最终会更改文本框?从根本上说,something 需要引用 Form1 的实例才能更改 特定表单 上的文本。
-
需要在
ListIt方法中使用Form1的对象