窗体A的构造方式 private Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } static public Form1 m_form = null; static public Form1 CreateInstance { get { if (m_form == null) { m_form = new Form1(); } return m_form; } set {} }
窗体B.dispose();
窗体C.showdialog();
就可以了啊。
在窗体A中公开刷新树的方法,
然后在窗体D的Closing事件中调用单例函数得到窗体A的实例,调用刷新方法.
private Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent(); //
// TODO: Add any constructor code after InitializeComponent call
//
} static public Form1 m_form = null;
static public Form1 CreateInstance
{
get
{
if (m_form == null)
{
m_form = new Form1();
}
return m_form;
}
set
{}
}
internal void SetText(string txt)
{
this.button1.Text = txt;
}// 窗体D的退出事件
private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Form1 frm = Form1.CreateInstance;
frm.SetText("ddddd");
e.Cancel = false;
}
执行完你的方法,在form2关闭的时候并没有刷新button1的text啊。
private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Form1 frm = Form1.CreateInstance;
frm.SetText("ddddd");
e.Cancel = false;
}上的代码是执行了,但是form1中的button1的text没有改变。