我有一个名为 FormMain 的主窗体。 FormMain 里面有一个名为 mainConsole 的RichTextBox。 我在 FormMain 中创建了一个方法:
public void ConsoleAdd(String text)
{
mainConsole.AppendText(text);
mainConsole.AppendText(System.Environment.NewLine);
}
我将 mainConsole 的属性修饰符更改为Public。
现在在另一个班级我用按钮控件写了这个:
FormMain fMain = new FormMain();
fMain.ConsoleAdd("Success!");
但它不起作用。没有引发任何异常,也没有添加任何文本。
我做错了吗?
答案 0 :(得分:2)
我看到的问题是你在错误的引用上调用ConsoleAdd
。您好像创建了FormMain
的新引用,并在此引用ConsoleAdd
。如果你打电话
fMain.Show();
你会看到第二个窗口弹出RichTextBox中的文本。您必须将对FormMain
的引用传递给尝试调用ConsoleAdd
的函数或使用单例函数。
答案 1 :(得分:1)
这就是我解决它的方法:
在 FormMain 中,我添加了以下代码:
static FormMain instance;
public FormMain()
{
InitializeComponent();
instance = this;
}
public static FormMain Instance
{
get
{
return instance;
}
}
在另一个课程中,我调用了这样的方法:
FormMain fMain = FormMain.Instance;
fMain.ConsoleAdd("Success!");
感谢大家的答案!