使类将数据附加到窗体上的文本框中
本文关键字:文本 窗体 数据 | 更新日期: 2023-09-27 17:59:53
基本上,我有一个处理一些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);
我只是假设您没有将表单的现有实例传递给您的类。
你需要这样做:
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