Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文本写入文本框_C#_Windows_Forms - Fatal编程技术网

C# 将文本写入文本框

C# 将文本写入文本框,c#,windows,forms,C#,Windows,Forms,我得到了一个名为Form1的表单和一个名为richtextbox1的富文本框,它是自动生成的,所以它是私有的 我得到了另一个连接到服务器的类,我想输出连接状态,但我只能访问richtextbox1。在Form1类中,我得到了两个可能的解决方案,哪个更好,或者有一个更好的解决方案我不知道 公开文本框 而不是: Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Applica

我得到了一个名为Form1的表单和一个名为richtextbox1的富文本框,它是自动生成的,所以它是私有的

我得到了另一个连接到服务器的类,我想输出连接状态,但我只能访问richtextbox1。在Form1类中,我得到了两个可能的解决方案,哪个更好,或者有一个更好的解决方案我不知道

  • 公开文本框

  • 而不是:

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
    
  • 首先创建form1对象并使用该对象存储正在运行的表单:

    //somewhere global
    Form1 theform = new Form1();
    
    
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(theform);
    

    然后在我的连接类中的某个地方使用该对象。

    我将在
    Form1
    中创建一个您可以使用的公共属性

    Form1.cs

    public string TextBoxText
    {
        get { return myTextBox.Text; }
        set { myTextBox.Text = value; }
    }
    
    myForm1.TextBoxText = "Current server status";
    
    然后可以从另一个类设置值

    AnotherClass.cs

    public string TextBoxText
    {
        get { return myTextBox.Text; }
        set { myTextBox.Text = value; }
    }
    
    myForm1.TextBoxText = "Current server status";
    
    如何访问myForm1取决于调用另一个类的方式。例如,您可以将表单传递到另一个类的构造函数中

    private Form1 myForm1 = null;
    public AnotherClass(Form1 mainForm)
    {
        myForm1 = mainForm;
        myForm1.TextBoxText = "Current server status";
    } 
    

    如果您正在创建与Form1中的服务器通信的类,请向该类添加事件,并在创建时在Form1中订阅该类

    另一个文件是静态类还是在form1中创建的不同文件,不是静态类,与form1的类无关。如何/在何处实例化它?在form1类中,我正在创建该类的对象。您仍然可以执行相同的操作向form1知道的类添加事件,订阅它,然后让该类订阅通信类中的事件并将其传递到Form1Property需要一个我目前没有的对象,我可以将该表单传递到通信构造函数中。是的,如果将其传递到构造函数中,以后可以从通信类访问它(并在拥有对象时设置属性)。