我有一个名为Form1的表单和一个名为richtextbox1的富文本框,它是自动生成的,所以它是私有的。
我有另一个连接到服务器的类,我想输出连接的状态,但是我只能访问Form1类中的richtextbox1.Text,我有两个可能的解决方案,这会更好还是有一个我不知道的更好的?
将文本框设为公开
而不是:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
首先创建一个form1对象,然后使用它来存储正在运行的表单:
//somewhere global
Form1 theform = new Form1();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(theform);
然后在我的连接类中的某个地方使用该对象。
答案 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中订阅它。