我有一个问题,我一点也不明白,我需要你的帮助…我在聊天中工作,我会用套接字来做,但问题不是这个,我创建了一个控制用户到我的聊天箱…另一个是我的气泡,我试着从我的主窗体中使用这个控件
private void button1_Click_1(object sender, EventArgs e)
{
chatbox a = new bunifchat.chatbox();
a.send2message("ABC");
}chatbox是我的controlUser的名字,我正在尝试使用他的方法send2message,我知道它可以工作,但并不正确。
public void send2message(String message)
{
bubble bbl = new bunifchat.bubble(message);
bbl.Location = bubble1.Location; bbl.Left += 100; //add intent
bbl.Size = bubble1.Size;
bbl.Anchor = bubble1.Anchor;
bbl.Top = bbl_old.Bottom + 20;
panel2.Controls.Add(bbl);
//bottom.Top = bbl.Bottom + 50;
bbl_old = bbl; //safe the last added object
}这个方法接收字符串并创建进入其他controlUser的气泡,当我用下面的代码从ControlUser聊天框中运行它时,它起作用:
private void buttonx_Click(object sender, EventArgs e)
{
//panel1.VerticalScroll.Value = panel1.VerticalScroll.Maximum;
String respuesta = txtbox.Text;
sendmessage("hola mundo");
send2message(respuesta);
panel2.VerticalScroll.Value = panel2.VerticalScroll.Maximum;
}但是如果我从我的主窗体运行它,什么也没有发生,我的气泡的代码是这样的:
public bubble(String message)
{
InitializeComponent();
label1.Text = message;
Setheight();
}如果我说得不清楚,请问,我需要帮助enter image description here
当我按下绿色按钮时,它会产生更多的气泡(蓝色矩形),但我想从我的主表单而不是我的聊天框发送内容。
发布于 2021-03-13 04:25:55
我将使用套接字完成此操作
这是否意味着您使用套接字在与UI线程不同的线程上接收数据?如果是这样,您需要检查oyu是否需要在访问/创建新对象之前调用。
private bool AddMessage(string msg)
{
if (this.InvokeRequired)
return (bool)this.Invoke((Func<string,bool>)AddMessage, msg);
//DO stuff here
send2message(msg);
return false;
}https://stackoverflow.com/questions/62605442
复制相似问题