0

基本上我有一个处理一些 websocket 事情的类,当收到一条消息时,你在下面看到的类代码被触发。消息框可以正常触发并显示数据,但文本没有输入到文本框中,它似乎只是崩溃而没有错误。

表格代码:

CreateSocket cs = new CreateSocket();
cs.Form = this;

public void AddMessage(string Msg)
{
    TxtMessageList.Text += Msg + Environment.NewLine;
}

班级代码:

public FrmMain Form;
Form.AddMessage(Json.Message.Sender.Username + ": " + Json.Message.Message);
4

1 回答 1

0

我将做一个假设,即您没有将表单的现有实例传递给您的类。

你需要这样做:

class YourAppenderClass {
    private FrmMain _form;

    public YourAppenderClass(FrmMain form) {
        _form = form;
    }

    public void AddMessage(string msg) {
        _form.TxtMessageList.Text += msg + Environment.NewLine;
    }
}

您将现有实例 ( this) 传递给您的类。您使用该实例来做您需要的事情。

..并这样称呼它:

YourAppenderClass appender = new YourAppenderClass(this); // "this" is your main form
appender.AddMessage("Blah");

或者,您可以改为使用现有实例来调用您提供的非静态方法:

// somewhere in the class..
_form.AddMessage("Blah"); // _form works because it is the instance you passed in
于 2013-02-17T23:43:04.430 回答