我遇到了一个奇怪的问题。我为使用C#编写的程序使用SocketIO4Net客户端。该程序与使用NodeJS & SocketIO写入的服务器进行通信。我可以在我的程序&服务器之间使用'socket.emit()'&'socket.On()'方法在SocketIO4NET客户端中发送&接收数据。但是,当我尝试更新从服务器收到的数据在GUI中的文本框时,没有任何反应。但是,如果我使用'MessageBox.Show()'方法,我可以显示我收到的数据。我使用下面的代码用于接收数据:C#文本框与SocketIO4NET一起使用时未更新
public Form1()
{
InitializeComponent();
socket = new Client("http://127.0.0.1:80/");
socket.On("message", (data) =>
{
String msg = data.Json.Args[0].ToString();
MessageBox.Show(msg,"Received Data");
rxtxtbox.Text = msg;
});
socket.Connect();
}
用于发送数据:
private void sendbtn_Click(object sender, EventArgs e)
{
String msg = msgtxtbox.Text.ToString();
socket.Emit("private message", msg);
}
上面的代码工作正常。但它不更新文本框'rxtxtbox'。如果我将行“rxtxtbox.Text = msg;”在“MessageBox.Show();”之上,接收“消息”事件时不会发生任何事情。我试着设置断点&看着变量“msg”的值为&其罚款。我试着宣布另一个功能只是为了更新文本框&,将“msg”传递给它&仍然没有结果!我认为这与等待“消息”事件有关?我试过“Application.DoEvents()”和“rxtxtbox.Refresh()”方法&仍然没有运气!我是C#的新手。请帮忙!
亲爱的Aravid我下载了你的文件,我做了一些更改,因为我在我的服务器上运行节点代码,我根据我的服务器代码更新了发送功能,这是更新, – 2015-01-24 13:10:32
但我是我的rxtbox.Text不是点击发送按钮后修改。 – 2015-01-24 13:11:48
@syed:请检查以下解决方案 – 2015-01-24 17:37:18