我的问题是,我无法在TextBox
中调用一条消息,而且我也不明白为什么。
有一个主类和一个第二类,两者都可以调用另一个。
我的错误在哪里?
using System;
using System.Windows.Forms;
namespace Class_Test___Invoke
{
public partial class MAINFORM : Form
{
public MAINFORM()
{
InitializeComponent();
_INVOKER = this;
}
private MAINFORM _INVOKER;
private static CLASS _CLASS = new CLASS();
private void button1_Click(object sender, EventArgs e)
{
_CLASS._MESSENGER();
}
public void _LOGGING(string _MESSAGE)
{
if (InvokeRequired)
{
_INVOKER.Invoke(new Action<string>(_LOGGING), new object[] { _MESSAGE });
textBox_ausgabe.AppendText(_MESSAGE);
return;
}
else textBox_ausgabe.AppendText(_MESSAGE);
}
}
}
namespace Class_Test___Invoke
{
class CLASS
{
private MAINFORM _MAINFORM = new MAINFORM();
public void _MESSENGER()
{
_MAINFORM._LOGGING("Test");
}
}
}
答案 0 :(得分:0)
您假设您在_MAINFORM
构造函数中创建的CLASS
与单击按钮的形式是 same 实例,不是这种情况。你有鸡和蛋的问题。您的表单将创建一个CLASS
,而CLASS
将创建一个表单。所以现在您有两种不同的形式。 (或两个不同的CLASS
实例,因为您没有显示第一个表单或CLASS
的创建方式)
您需要通过将表单作为参数传递给构造函数或通过其他某种方式来“连接”表单和类。
最后,我鼓励您对类和成员名的最佳做法进行一些研究。对于一个经验丰富的C#开发人员来说,看到所有大写字母的名字并加下划线是有点令人困惑。