无法从另一个类添加到RichTextBox?

时间:2016-05-16 16:08:59

标签: c# methods

我有一个名为 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!");

但它不起作用。没有引发任何异常,也没有添加任何文本。

我做错了吗?

2 个答案:

答案 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!");

感谢大家的答案!