日期:2014-05-18  浏览次数:21097 次

C#如何实现多个窗体控件内容同步更新
现在有一个Winform项目,有三个窗体(非父窗体与子窗体)各自有一个textbox控件,如何实现当我更新其中一个窗体控件内容时,其它两个窗体控件内容也一起更新。

------解决方案--------------------
这个不难吧,创建一个性质
public class Tools
{
private string m_TextBoxValue="";
public static string TextBoxValue
{
get
{
return m_TextBoxValue;
}
set
{
m_TextBoxValue=value;
if(myForm1.TextBox1.Text!=m_TextBoxValue}
myForm1.TextBox1.Text=m_TextBoxValue;
if(myForm2.TextBox1.Text!=m_TextBoxValue}
myForm2.TextBox1.Text=m_TextBoxValue;
if(myForm1.TextBox3.Text!=m_TextBoxValue}
myForm1.TextBox3.Text=m_TextBoxValue;
}
}

意思就是这个意思,当然,你还要设置为各窗口中TextBox属性为public ,或者通过“性质”让Tools能访问,如
public MyTextBox
{
get
{
return this.textbox1;
}
}
这样,虽然textbox1为private的,但Tools仍然能访问
另外,还要判断myform是否存在,这都是相关细节了,任何一个窗口的文本框内容发生改变时,都调用一下:
Tools.TextBoxValue=新的值,一定要if(myForm1.TextBox1.Text!=m_TextBoxValue}
myForm1.TextBox1.Text=m_TextBoxValue;这种方式,即先判断,如果不等,才赋值,否则,容易引起死循环