关于c#:将文本写入文本框

writing text into a textbox

我有一个叫做form1的表单和一个叫做richtextbox1的富文本框,它是自动生成的,所以它是私有的。

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

  • 将文本框公开

  • 而不是:

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

    1
    2
    3
    4
    5
    6
    7
    //somewhere global
    Form1 theform = new Form1();


    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(theform);

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


    我会在Form1创建一个公共财产,供您使用。

    Form1.cs

    1
    2
    3
    4
    5
    public string TextBoxText
    {
        get { return myTextBox.Text; }
        set { myTextBox.Text = value; }
    }

    然后可以从另一个类设置值。

    AnotherClass.cs

    1
    myForm1.TextBoxText ="Current server status";

    如何访问myForm1取决于您如何调用另一个类。例如,可以将表单传递到另一个类的构造函数中。

    1
    2
    3
    4
    5
    6
    private Form1 myForm1 = null;
    public AnotherClass(Form1 mainForm)
    {
        myForm1 = mainForm;
        myForm1.TextBoxText ="Current server status";
    }


    如果要在Form1中创建与服务器通信的类,请向其添加一个事件,并在创建时在Form1中订阅它。