c# 不同窗体之间传值和调用

1.子窗体事件刷新父窗体界面值

子窗体定义委托和事件

 //声明一个委托
        public delegate void DisplayUpdateDelegate(string str);
        //声明事件
        public event DisplayUpdateDelegate ShowUpdate;
        private void Form2_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (ShowUpdate != null)
            {
                ShowUpdate(textBox1.Text.ToString());
            }
        }

父窗体

   private void button3_Click(object sender, EventArgs e)
        {
            Form2 _frm2 = new Form2();
            _frm2.ShowUpdate += new Form2.DisplayUpdateDelegate(ShowMessage);
            _frm2.Show();
        }

        private void ShowMessage(string str)
        {
            textBox1.Text = str;
        }

2.父窗体的事件刷新子窗体的值

父窗体代码

  public delegate void ChangeSonWindowDelegate(string str);
        ChangeSonWindowDelegate _changeSonWindow;
        private void button1_Click(object sender, EventArgs e)
        {

            Form2 _frm2 = new Form2();
             _changeSonWindow = new ChangeSonWindowDelegate(_frm2.ShowMessage);
            _frm2.Show();

        }

        private void button2_Click(object sender, EventArgs e)
        {

            _changeSonWindow(textBox1.Text);

        }

子窗体代码

        public void ShowMessage(string str)
        {
            textBox1.Text = str;

        }
时间: 2024-10-23 06:57:11

c# 不同窗体之间传值和调用的相关文章

一个简易的便签工具:探索窗体之间传值和传引用的方法

简单的便签工具:实现了基于文本的便签信息的浏览,删除,添加.可以查看时间,实时更新数据. 这个便签工具完全基于面向对象的编程方式,首先定义Note类,然后使用NoteManager类进行便签的管理.其中的关键就是在NoteManager类中定义list<Note>泛型集合.原理上和ArrayList基本是一致的. NoteManager的工作原理: public List<Note> list;//定义一个泛型集合,并在构造函数中初始化. private int CurrentIn

windows form (窗体) 之间传值小结

windows form (窗体) 之间传值小结 在windows form之间传值,我总结了有四个方法:全局变量.属性.窗体构造函数和delegate. 第一个全局变量: 这个最简单,只要把变量描述成static就可以了,在form2中直接引用form1的变量,代码如下: 在form1中定义一个static变量public static int i= 9 ; Form2中的钮扣按钮如下: private void button1_Click(object sender, System.Even

winform独立窗体之间传值的简单方法

最近做一个多窗体联动的小程序,用到了窗体间传值. 网络上到处都是父窗体和子窗体之间传值的方法,总结起来有 1.有参数的构造函数, 2.委托 以委托为例,父窗体如果想要发送信息给子窗体,只需要在父窗体中定义好事件. //str为发送内容,formName为指定要发送给的窗体名字 public delegate void ReceiveMsg(string str,string formName); public event ReceiveMsg receiveMsg; 然后在实例化子窗体时,将子窗

窗体之间传值的方法

第一种方法: 创建一个类,里面声明用于存储接收的字段.传的时候存储于字段中,要用的时候,直接类名.字段名 进行调用.(这种方法传递是双向的) 第二种方法: 1.在Form1里定义 public string Name = "*****" 2. 在Form2里创建Form1对象, Form1 f = new Form1(); 然后就可以通过f.Name取值了 第三种方法:用构造函数在窗体Form2中 int value1; string value2; public Form2 ( in

C#使用事件方式Winform窗体之间传值

[摘自:http://www.cnblogs.com/codeToUp/p/5371062.html] 工程的源代码地址:https://github.com/yes-or-no/WinFormTransValueDemoByDelOrEvent.git C#winform窗体间传值,三种方法示例,注释详细.使用方法:使用vs2013打开编译运行即可: 工程中总共介绍了三种方法:###方法1:通过保存对象的引用调用其方法实现对子窗体的控制:###方法2:通过委托,在子窗体显示之前,为委托赋值,关

WinForm 与WPF 窗体之间的想到调用

先放置一个容器控件,并设计 好WinForm(或WPF)窗口 winform 调用 wpf ElementHost el = new ElementHost(); el.Dock = DockStyle.Fill; this.panelStation.Controls.Add(el); ucStationMess_WPF stat = new ucStationMess_WPF(); el.Child = stat; 其中,panelStation 为winform 的窗口控件 ucStatio

窗体之间传值

传值可在副窗口cs中定义副窗口的Tag属性,结合主窗口cs中的:副窗口类名.ActiveForm.Tag属性//进行传递. 同时须结合主窗口中定义的副窗口的FormClosing方法. private void 显示标注ToolStripMenuItem_Click(object sender, EventArgs e) { //没有图层时,报提示框 if (axMapControl1.LayerCount <= 0) { MessageBox.Show("当前无图层,无法显示标注&quo

winform使用委托和事件在窗体之间传值

定义委托和事件,并且触发这个事件 //定义委托 public delegate void ShowOutStockDelegate(List<OutStockResultDto> outStockResultDto); //定义事件 public event ShowOutStockDelegate ShowOutStockEvent; private void btnConfirm_Click(object sender, EventArgs e) { ShowOutStockEvent(o

winform 窗体之间的操作

1 通过一个窗体按钮打开另一个窗体 Form f2 = new Form2(); f2.Show(); 通过这个打开第二个页面  要想只显示一个页面只能隐藏第一个页面 如果第一个页面关闭 第二个页面也会跟着关闭.. 2窗体之间的传值 窗体之间传值 需要两个甚至多个窗体 Form f2 = new Form2(要传递的值);f2.Show(); 然后再另一个需要这个值的窗体中 Users z = null;//根据值的类型实例化public Form4(Users a) //方法这里也要写要传入的