从另一个类访问表单成员

Iva*_*nov 0 c# memo winforms

关键是在TCP客户端接收/发送数据包时使用备忘录通知用户.旧的代码是额外的愚蠢,我使用了一个用于在备忘录中添加文本的Timer,因为Timer可以访问表单成员,lol.

旧代码:

//Memo.Text += txt + "\n";
Run Code Online (Sandbox Code Playgroud)

我今天玩它,这就是我所做的

在Form1的类中

public string TextValue
{
    get
    {
        return Memo.Text;
    }

    set
    {
        this.Memo.Text += value + "\n";
    }
}    
Run Code Online (Sandbox Code Playgroud)

我这样调用代码:

Form1 myForm = new Form1();
myForm.TextValue = "test asdasd";
Run Code Online (Sandbox Code Playgroud)

备忘录修饰符是私有的,但这不是问题.

问题是当我调用代码时,备忘录上没有显示文本.

Kon*_*kus 7

输入以下内容:

Form1 myForm = new Form1();
Run Code Online (Sandbox Code Playgroud)

你创建一个新的表单实例(Form1),但我想你应该使用最有可能已经初始化的现有实例.

其中一种方法:

var form = Form.ActiveForm as Form1;

if (form != null)
{
     form.TextValue = "test asdasd";
}
Run Code Online (Sandbox Code Playgroud)

虽然这不是很好的设计.尝试使用自定义events.