1

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

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

  1. 公开文本框

  2. 代替 :

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
    

首先创建一个 form1 对象并使用它来存储正在运行的表单:

//somewhere global
Form1 theform = new Form1();


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

然后在我的连接类的某处使用该对象。

4

2 回答 2

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";
} 
于 2013-06-16T17:28:02.933 回答
0

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

于 2013-06-16T17:28:37.713 回答