c#控制winform窗体间数据交互的方法

c#控制winform窗体间数据交互的方法

ID:25685431

大小:50.00 KB

页数:5页

时间:2018-11-22

c#控制winform窗体间数据交互的方法_第1页
c#控制winform窗体间数据交互的方法_第2页
c#控制winform窗体间数据交互的方法_第3页
c#控制winform窗体间数据交互的方法_第4页
c#控制winform窗体间数据交互的方法_第5页
资源描述:

《c#控制winform窗体间数据交互的方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本文将为大家介绍的是WinForm窗体之间的数据交互等问题,包括自定义一个构造函数等等问题。在窗体间传递数据的方法比较多:1,在子窗体中自定义一个构造函数,参数类型是主窗体,当要显示子窗体的时候,就用这个构造函数来实例化子窗体,然后把this指针传进去,说起来太抽象了,我大概一写大家应该就明白了:1.public class frmMain:Form 2.  { 3.       ... 4.       frmControl controlForm=new frmControl(this); 5.       controlFo

2、rm.Show(); 6.   } 7.   public class frmControl:Form  //子窗体,用来控制主窗体的某些显示! 8.   { 9.        private frmMain mainForm; 10.        public frmControl(frmMain mainForm) 11.        { 12.             this.mainForm=mainForm; 13.         } 14.         private void button1_Click

3、(object sender,EventArgs e) 15.              {                        16.frmMain.textBox1.Text=this.textBox1.Text;  //把子窗体的文本框值传递给主窗体的文本框! 17.              } 18.    } 2,我个人感觉上面的方法不是很好,虽然实现起来很简单,只是想改变窗体的标题文本,就把整个主窗体的引用都传递给子窗体,这样的方式不是很幽雅,我们用接口来改进上面的方法,这样可以限制暴露给子窗体的功能,降低

4、窗体之间的耦合度:1.public interface IChangeTitle: 2. { 3.      void ChangeTitle(string title); 4.  } 5. public class frmMain:Form,IChangeTitle 1. { 2.      ... 3.      frmControl controlForm=new frmControl(this); 4.      controlForm.Show(); 5.      public void ChangeTitle(str

5、ing title) 6.      { 7.           this.Text=title; 8.       }         9.  } 10.  public class frmControl:Form  //子窗体,用来控制主窗体的某些显示! 11.  { 12.       private IChangeTitle ichangeTitle; 13.       public frmControl(IChangeTitle ichangeTitle) 14.       { 15.            thi

6、s.ichangeTitle=ichangeTitle; 16.        } 17.        private void button1_Click(object sender,EventArgs e) 18.             { 19.ichangeTitle.ChangeTitle(this.textBox1.Text);  //通过接口来调用方法 20. 21.             } 22. 23.   } 3,为了进一步降低窗体之间的耦合度,我们可以用委托来实现这个需求:1.public parti

7、al class ChildForm : Form 2.   { 3. public delegate void TitleChangedHandler(string title); 4.  public TitleChangedEventHandler TitleChanged; 5.   public ChildForm() 6.       { 7.           InitializeComponent(); 8.       } 1. 2.        3.  private void btn_Ok_Click(o

8、bject sender, EventArgs e) 4.       {             5.           if (TitleChanged != null) 6.               TitleChanged("Test

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。