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

Posted ike_li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

        }

 

  

以上是关于c# 不同窗体之间传值和调用的主要内容,如果未能解决你的问题,请参考以下文章

winform 窗体加载的问题,C#里不同Panel中窗体的调用

C#两窗体(或类)之间传值

winform 窗体加载的问题,C#里不同Panel中窗体的调用

WPF C#怎么窗体间传值

C# winform 跨线程操作winform程序窗体

在c语言编程中,传值方式和传引用方式之间有啥区别?