将文本写入文本框

时间:2013-06-16 17:22:22

标签: c# windows forms

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

我有另一个连接到服务器的类,我想输出连接的状态,但是我只能访问Form1类中的richtextbox1.Text,我有两个可能的解决方案,这会更好还是有一个我不知道的更好的?

  1. 将文本框设为公开

  2. 而不是:

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
    
  3. 首先创建一个form1对象,然后使用它来存储正在运行的表单:

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

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

2 个答案:

答案 0 :(得分:2)

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

Form1.cs

public string TextBoxText
{
    get { return myTextBox.Text; }
    set { myTextBox.Text = value; }
}

然后,您可以设置另一个类的值。

AnotherClass.cs

myForm1.TextBoxText = "Current server status";

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

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

答案 1 :(得分:0)

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