为什么我不能从其他类调用?



我的问题是,我无法将消息调用到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");
        }
    }
}

您假设在CLASS构造函数中创建的_MAINFORM是与单击按钮的窗体相同的实例,但事实并非如此。你有鸡和蛋的问题。您的表单创建一个CLASSCLASS创建一个表单。因此,现在您有两个不同的表单。(或者两个不同的CLASS实例,因为您没有显示第一个表单或CLASS是如何创建的(

您需要通过将窗体作为参数传递给构造函数或通过其他方式来"连接"窗体和类。

最后,我鼓励您对班级和成员名称的最佳实践进行一些研究。对于一个经验丰富的C#开发人员来说,看到名字全大写并以下划线开头有点令人不安。

相关内容

  • 没有找到相关文章

最新更新