c# 子窗体form2中更新主窗体form1中的控件textbox内容的方式?
1、比如在form2的button_click中,更新form1的textbox的内容,但不通过创建新的线程去更新,此时应该怎样做?需要用invoke吗?2、如果通过新的...
1、比如在form2的button_click中,更新form1的textbox的内容,但不通过创建新的线程去更新,此时应该怎样做?需要用invoke吗?
2、如果通过新的线程更新textbox,那么使用invoke的方式下,各个函数及委托都是在放在哪些类中?
大概知道流程,但是整体还是很模糊,一直弄不明白,所以求教于大家,谢谢。 展开
2、如果通过新的线程更新textbox,那么使用invoke的方式下,各个函数及委托都是在放在哪些类中?
大概知道流程,但是整体还是很模糊,一直弄不明白,所以求教于大家,谢谢。 展开
2个回答
展开全部
//啥也不多说了,代码更简洁明了。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
var form2=new Form2();
form2.UpdateMessage = UpdateMsg;
form2.ShowDialog();
}
void UpdateMsg(string msg)
{
Text = msg;
}
}
public partial class Form2 : Form
{
public UpdateMessageDelegate UpdateMessage { get; set; }
public Form2()
{
InitializeComponent();
}
private void tbContent2_TextChanged(object sender, EventArgs e)
{
var msg = tbContent2.Text.Trim();
if (UpdateMessage!=null)
{
UpdateMessage(msg);
}
}
}
public delegate void UpdateMessageDelegate(string msg);
UpdateMessageDelegate这个委托我单独定义到了一个类文件中,当然也可以定义在Form窗体类的外面。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询