winform中为了代码复用,我把列表显示等单独为一个窗体,在需要同样数据的列表时引用那个单独的窗体,如何实现 有没有更好的方法实现代码 窗体等复用。 如果一个大窗体上引用了几个独立的窗体 互相之间数据操作完刷新显示等都有哪些方法。  winform窗体之间互相刷新都有哪些方式,如果不存在子父关系时。。 

解决方案 »

  1.   

    就是窗体间的通信吗,方法很多,发消息可以,模块窗体中发布一个属性,外部直接给这个属性赋值,然后内部执行相应的代码,public函数也可以,接口也可以,自定义事件也可以,你还想要啥
      

  2.   

    你可以再你需要引用子窗体的地方增加 PANEL 来实现把多个窗体组合在一起显示
      

  3.   

            public static CommonForm.MsgEscapesSForm mesf;
            public static CommonForm.MsgEscapesTForm metf;
            public static CommonForm.MsgEscapersSTForm msgST;
            public MsgEscapesForm()
            {
                InitializeComponent();
            }        private void MsgEscapesForm_Load(object sender, EventArgs e)
            {
                mesf = new BHL.AICMEWS.SystemManage.CommonForm.MsgEscapesSForm();
                mesf.FormBorderStyle = FormBorderStyle.None;
                mesf.TopLevel = false;
                mesf.Dock = DockStyle.Fill;
                this.splitContainer2.Panel1.Controls.Add(mesf);
                mesf.Show();            metf = new BHL.AICMEWS.SystemManage.CommonForm.MsgEscapesTForm();
                metf.FormBorderStyle = FormBorderStyle.None;
                metf.TopLevel = false;
                metf.Dock = DockStyle.Fill;
                this.splitContainer2.Panel2.Controls.Add(metf);
                metf.Show();            msgST = new BHL.AICMEWS.SystemManage.CommonForm.MsgEscapersSTForm();
                msgST.FormBorderStyle = FormBorderStyle.None;
                msgST.TopLevel = false;
                msgST.Dock = DockStyle.Fill;
                this.splitContainer1.Panel2.Controls.Add(msgST);
                msgST.Show();        }
      

  4.   

    你就是在不同窗体之间的通讯呗共享内存写ini/xml文件.........