void socket_OnSended(string SenderID, string EventMessage)
{
AddMsg("Me: " + txtSend.Text + " CIS:" + counterSendTimes);
counterSendTimes++;
txtSend.Text = "";
txtSend.Focus();
} private void AddMsg(string msg)
{
if (txtMsg.InvokeRequired)
{
CallBackRef c = new CallBackRef(AddMsgCallBack);
this.Invoke(c, new object[] { msg });
}
else
{
txtMsg.Text += Environment.NewLine + msg;
}
} private void AddMsgCallBack(string msg)
{
txtMsg.Text += Environment.NewLine + msg;
} 在上面 加红色的语句报错误 “线程间操作无效: 从不是创建控件 “txtSend”的线程访问它” 咋样,才能保证能这么操作呢?
{
AddMsg("Me: " + txtSend.Text + " CIS:" + counterSendTimes);
counterSendTimes++;
txtSend.Text = "";
txtSend.Focus();
} private void AddMsg(string msg)
{
if (txtMsg.InvokeRequired)
{
CallBackRef c = new CallBackRef(AddMsgCallBack);
this.Invoke(c, new object[] { msg });
}
else
{
txtMsg.Text += Environment.NewLine + msg;
}
} private void AddMsgCallBack(string msg)
{
txtMsg.Text += Environment.NewLine + msg;
} 在上面 加红色的语句报错误 “线程间操作无效: 从不是创建控件 “txtSend”的线程访问它” 咋样,才能保证能这么操作呢?
delegate void SetTxtCallback(string txt)
void SetTxt(string txt)
{
if(txtSend.InvokeRequired)
{
SetTxtCallback call = new SetTxtCallback(SetTxt);
this.Invoke(call , new object[] { txt });
}
else
{
txtSend.Text = txt;
}
}