zoukankan      html  css  js  c++  java
  • [转]- Winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值

    转自:http://heisetoufa.iteye.com/blog/382684

    第一种方法: 


    用委托,Form2和Form3是同一组 

    Form2 

    C#代码 复制代码
    1. using System;   
    2. using System.Collections.Generic;   
    3. using System.ComponentModel;   
    4. using System.Data;   
    5. using System.Drawing;   
    6. using System.Text;   
    7. using System.Windows.Forms;   
    8.   
    9. namespace TestMouseMove   
    10. {   
    11.     public delegate void SetVisiableHandler();   
    12.   
    13.     public partial class Form2 : Form   
    14.     {   
    15.         public Form2()   
    16.         {   
    17.             InitializeComponent();   
    18.         }   
    19.         private void button1_Click(object sender, EventArgs e)   
    20.         {   
    21.             Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));   
    22.             frm.Show();   
    23.         }   
    24.   
    25.         private void SetVisiable()   
    26.         {   
    27.             SetVisiable(this.label1, !this.label1.Visible);   
    28.         }   
    29.   
    30.         private void SetVisiable(Control control, bool visiable)   
    31.         {   
    32.             if (this.Controls.Contains(control))   
    33.             {   
    34.                 control.Visible = visiable;   
    35.             }   
    36.         }   
    37.   
    38.     }   
    39. }  
    [c#] view plaincopy
     
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.ComponentModel;  
    4. using System.Data;  
    5. using System.Drawing;  
    6. using System.Text;  
    7. using System.Windows.Forms;  
    8.   
    9. namespace TestMouseMove  
    10. {  
    11.     public delegate void SetVisiableHandler();  
    12.   
    13.     public partial class Form2 : Form  
    14.     {  
    15.         public Form2()  
    16.         {  
    17.             InitializeComponent();  
    18.         }  
    19.         private void button1_Click(object sender, EventArgs e)  
    20.         {  
    21.             Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));  
    22.             frm.Show();  
    23.         }  
    24.   
    25.         private void SetVisiable()  
    26.         {  
    27.             SetVisiable(this.label1, !this.label1.Visible);  
    28.         }  
    29.   
    30.         private void SetVisiable(Control control, bool visiable)  
    31.         {  
    32.             if (this.Controls.Contains(control))  
    33.             {  
    34.                 control.Visible = visiable;  
    35.             }  
    36.         }  
    37.   
    38.     }  
    39. }  



    Form3 

    C#代码 复制代码
    1. using System;   
    2. using System.Collections.Generic;   
    3. using System.ComponentModel;   
    4. using System.Data;   
    5. using System.Drawing;   
    6. using System.Text;   
    7. using System.Windows.Forms;   
    8.   
    9. namespace TestMouseMove   
    10. {   
    11.     public partial class Form3 : Form   
    12.     {   
    13.         private SetVisiableHandler m_setVisible;   
    14.   
    15.         public Form3(SetVisiableHandler setvisible)   
    16.         {   
    17.             InitializeComponent();   
    18.             this.m_setVisible = setvisible;   
    19.         }   
    20.         private void btnVisible_Click(object sender, EventArgs e)   
    21.         {   
    22.             if (this.m_setVisible != null)   
    23.             {   
    24.                 this.m_setVisible();   
    25.             }   
    26.         }   
    27.   
    28.     }   
    29. }  
    [c#] view plaincopy
     
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.ComponentModel;  
    4. using System.Data;  
    5. using System.Drawing;  
    6. using System.Text;  
    7. using System.Windows.Forms;  
    8.   
    9. namespace TestMouseMove  
    10. {  
    11.     public partial class Form3 : Form  
    12.     {  
    13.         private SetVisiableHandler m_setVisible;  
    14.   
    15.         public Form3(SetVisiableHandler setvisible)  
    16.         {  
    17.             InitializeComponent();  
    18.             this.m_setVisible = setvisible;  
    19.         }  
    20.         private void btnVisible_Click(object sender, EventArgs e)  
    21.         {  
    22.             if (this.m_setVisible != null)  
    23.             {  
    24.                 this.m_setVisible();  
    25.             }  
    26.         }  
    27.   
    28.     }  
    29. }  



    第二种方法: 

    用变量,Form4和Form5是同一组 

    Form4 

    C#代码 复制代码
    1. using System;   
    2. using System.Collections.Generic;   
    3. using System.ComponentModel;   
    4. using System.Data;   
    5. using System.Drawing;   
    6. using System.Text;   
    7. using System.Windows.Forms;   
    8.   
    9. namespace TestMouseMove   
    10. {   
    11.     public partial class Form4 : Form   
    12.     {   
    13.         public Form4()   
    14.         {   
    15.             InitializeComponent();   
    16.         }  
    17.  
    18.         #region 子窗口刷新父窗口的值   
    19.   
    20.         private string strLabel1 = "";   
    21.   
    22.         public string StrLabel1   
    23.         {   
    24.             get  
    25.             {   
    26.                 return strLabel1;   
    27.             }   
    28.             set  
    29.             {   
    30.                 strLabel1 = value;   
    31.                 this.label1.Text = strLabel1;   
    32.             }   
    33.         }  
    34.         #endregion   
    35.   
    36.         private void button1_Click(object sender, EventArgs e)   
    37.         {   
    38.             Form5 form5 = new Form5(this);//这里注意传个this   
    39.             form5.Show();   
    40.         }   
    41.     }   
    42. }  
    [c#] view plaincopy
     
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.ComponentModel;  
    4. using System.Data;  
    5. using System.Drawing;  
    6. using System.Text;  
    7. using System.Windows.Forms;  
    8.   
    9. namespace TestMouseMove  
    10. {  
    11.     public partial class Form4 : Form  
    12.     {  
    13.         public Form4()  
    14.         {  
    15.             InitializeComponent();  
    16.         }  
    17.  
    18.         #region 子窗口刷新父窗口的值  
    19.   
    20.         private string strLabel1 = "";  
    21.   
    22.         public string StrLabel1  
    23.         {  
    24.             get  
    25.             {  
    26.                 return strLabel1;  
    27.             }  
    28.             set  
    29.             {  
    30.                 strLabel1 = value;  
    31.                 this.label1.Text = strLabel1;  
    32.             }  
    33.         }  
    34.         #endregion  
    35.   
    36.         private void button1_Click(object sender, EventArgs e)  
    37.         {  
    38.             Form5 form5 = new Form5(this);//这里注意传个this  
    39.             form5.Show();  
    40.         }  
    41.     }  
    42. }  



    Form5 

    C#代码 复制代码
      1. using System;   
      2. using System.Collections.Generic;   
      3. using System.ComponentModel;   
      4. using System.Data;   
      5. using System.Drawing;   
      6. using System.Text;   
      7. using System.Windows.Forms;   
      8.   
      9. namespace TestMouseMove   
      10. {   
      11.     public partial class Form5 : Form   
      12.     {   
      13.         Form4 form4 = new Form4();   
      14.   
      15.         public Form5(Form4 formFrm)//这个构造方法里有参数   
      16.         {   
      17.             form4 = formFrm; //这个必须要有   
      18.             InitializeComponent();   
      19.         }   
      20.   
      21.           
      22.         private void button1_Click(object sender, EventArgs e)   
      23.         {   
      24.             form4.StrLabel1 = this.textBox1.Text;   
      25.         }   
      26.     }   
  • 相关阅读:
    Form表单中不同的按钮进行不同的跳转
    Redis查询&JDBC查询&Hibernate查询方式的效率比较...
    JDBC批处理读取指定Excel中数据到Mysql关系型数据库
    使用JDBC-ODBC读取Excel文件
    Linux公社资料库地址
    用Shell实现俄罗斯方块代码(Tetris.sh)
    Storm累计求和中使用各种分组Grouping
    Storm累计求和Demo并且在集群上运行
    CSS中margin和padding的区别
    使用json-lib-*.jar的JSON解析工具类
  • 原文地址:https://www.cnblogs.com/slow/p/3333049.html
Copyright © 2011-2022 走看看