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

第一种方法:


用委托,Form2和Form3是同一组

Form2 

  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. namespace TestMouseMove
  9. {
  10. public delegate void SetVisiableHandler();
  11. public partial class Form2 : Form
  12. {
  13. public Form2()
  14. {
  15. InitializeComponent();
  16. }
  17. private void button1_Click(object sender, EventArgs e)
  18. {
  19. Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));
  20. frm.Show();
  21. }
  22. private void SetVisiable()
  23. {
  24. SetVisiable(this.label1, !this.label1.Visible);
  25. }
  26. private void SetVisiable(Control control, bool visiable)
  27. {
  28. if (this.Controls.Contains(control))
  29. {
  30. control.Visible = visiable;
  31. }
  32. }
  33. }
  34. }
  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. namespace TestMouseMove
  9. {
  10. public delegate void SetVisiableHandler();
  11. public partial class Form2 : Form
  12. {
  13. public Form2()
  14. {
  15. InitializeComponent();
  16. }
  17. private void button1_Click(object sender, EventArgs e)
  18. {
  19. Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));
  20. frm.Show();
  21. }
  22. private void SetVisiable()
  23. {
  24. SetVisiable(this.label1, !this.label1.Visible);
  25. }
  26. private void SetVisiable(Control control, bool visiable)
  27. {
  28. if (this.Controls.Contains(control))
  29. {
  30. control.Visible = visiable;
  31. }
  32. }
  33. }
  34. }

Form3

  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. namespace TestMouseMove
  9. {
  10. public partial class Form3 : Form
  11. {
  12. private SetVisiableHandler m_setVisible;
  13. public Form3(SetVisiableHandler setvisible)
  14. {
  15. InitializeComponent();
  16. this.m_setVisible = setvisible;
  17. }
  18. private void btnVisible_Click(object sender, EventArgs e)
  19. {
  20. if (this.m_setVisible != null)
  21. {
  22. this.m_setVisible();
  23. }
  24. }
  25. }
  26. }
  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. namespace TestMouseMove
  9. {
  10. public partial class Form3 : Form
  11. {
  12. private SetVisiableHandler m_setVisible;
  13. public Form3(SetVisiableHandler setvisible)
  14. {
  15. InitializeComponent();
  16. this.m_setVisible = setvisible;
  17. }
  18. private void btnVisible_Click(object sender, EventArgs e)
  19. {
  20. if (this.m_setVisible != null)
  21. {
  22. this.m_setVisible();
  23. }
  24. }
  25. }
  26. }

第二种方法:

用变量,Form4和Form5是同一组

Form4

  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. namespace TestMouseMove
  9. {
  10. public partial class Form4 : Form
  11. {
  12. public Form4()
  13. {
  14. InitializeComponent();
  15. }
  16. #region 子窗口刷新父窗口的值
  17. private string strLabel1 = "";
  18. public string StrLabel1
  19. {
  20. get
  21. {
  22. return strLabel1;
  23. }
  24. set
  25. {
  26. strLabel1 = value;
  27. this.label1.Text = strLabel1;
  28. }
  29. }
  30. #endregion
  31. private void button1_Click(object sender, EventArgs e)
  32. {
  33. Form5 form5 = new Form5(this);//这里注意传个this
  34. form5.Show();
  35. }
  36. }
  37. }
  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. namespace TestMouseMove
  9. {
  10. public partial class Form4 : Form
  11. {
  12. public Form4()
  13. {
  14. InitializeComponent();
  15. }
  16. #region 子窗口刷新父窗口的值
  17. private string strLabel1 = "";
  18. public string StrLabel1
  19. {
  20. get
  21. {
  22. return strLabel1;
  23. }
  24. set
  25. {
  26. strLabel1 = value;
  27. this.label1.Text = strLabel1;
  28. }
  29. }
  30. #endregion
  31. private void button1_Click(object sender, EventArgs e)
  32. {
  33. Form5 form5 = new Form5(this);//这里注意传个this
  34. form5.Show();
  35. }
  36. }
  37. }

Form5

    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. namespace TestMouseMove
    9. {
    10. public partial class Form5 : Form
    11. {
    12. Form4 form4 = new Form4();
    13. public Form5(Form4 formFrm)//这个构造方法里有参数
    14. {
    15. form4 = formFrm; //这个必须要有
    16. InitializeComponent();
    17. }
    18. private void button1_Click(object sender, EventArgs e)
    19. {
    20. form4.StrLabel1 = this.textBox1.Text;
    21. }
    22. }
    23. }

[转]- Winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值的更多相关文章

  1. c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法

    [前提]一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作. [解决方案] 1.在窗体A中定义:public static double a;// ...

  2. Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载

    在前面介绍的几篇关于CRM系统的开发随笔中,里面都整合了多个页面的功能,包括多文档界面,以及客户相关信息的页面展示,这个模块就是利用DevExpress控件的XtraTabPage控件的动态加载实现的 ...

  3. Winform中实现更改DevExpress的RadioGroup的选项时更改其他控件(TextEdit、ColorPickEdit)的值

    场景 Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article ...

  4. WinForm/Silverlight多线程编程中如何更新UI控件的值

    单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...

  5. (转载)c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值

    第一种方法: 用委托,Form2和Form3是同一组 Form2 C#代码 using System; using System.Collections.Generic; using System.C ...

  6. C#多线程应用:子线程更新主窗体控件的值(二)

    在上篇文章中,我已经给大家列了一个在主线程中实现的方式,这篇文章来给大家说说使用Invoke的方式的例子: 对于不代理不太熟悉的朋友,建议先查查相关资料: 例子一: 在C#中,直接在子线程中对窗体上的 ...

  7. WinForm用户自定义控件,在主窗体加载时出现闪烁;调用用户控件出现闪烁,需要鼠标才能够显示

    转载自:http://www.dotblogs.com.tw/rainmaker/archive/2012/02/22/69811.aspx 解决方案: 在调用用户控件的窗体里面添加一下代码: pro ...

  8. datagridview随窗体的大小而变,表格填满控件

    在C#winform布局的时候,我们拖一个datagridview到窗体上面,将datagridview调整为适合窗体的大小,但是我们运行之后,点击最大化按钮的时候,却发现datagridview的大 ...

  9. 如何实现能像windows 窗体一样改变大小的控件 Silverlight

    众所周知,我们可以将鼠标放在windows窗体的边框上,按住鼠标左键改变窗体大小.那么,在silverlight上如何实现呢? 1. 需要将改控件放置在canvas上. 2. 判断鼠标位置,然后将Ar ...

随机推荐

  1. 网络流sap算法模版

    递归版sap: #include<cstdio> #include<iostream> #include<cstring> #include<algorith ...

  2. 设置背景为白色,避免从A视图跳转到B视图的时候出现卡顿

    - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; }

  3. AspNetPager学习使用2

    接上回: <webdiyer:aspnetpager id=" FirstPageText="首页"LastPageText="尾页" Next ...

  4. Table of Contents - ActiveMQ

    Getting Started ActiveMQ 的安装 Hello World Configuring Standard ActiveMQ Components Connecting to Acti ...

  5. HTML之背景颜色的改变

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. TableViewCell自适应高度

    //初始化TableView时设置 self.tv.estimatedRowHeight=54;self.tv.rowHeight=UITableViewAutomaticDimension;

  7. springside出现Description Resource Path Location Type

    <?xml version="1.0" encoding="utf-8" ?><beans xmlns="http://www.sp ...

  8. MySQL 备份和恢复

      详细地址:http://imysql.cn/mysql_backup_and_recover

  9. Bring up a website by wordpress

    WORDPRESS WordPress is web software you can use to create a beautiful website or blog, which is both ...

  10. 洛谷 P1428 小鱼比可爱

    题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然 ...