zoukankan      html  css  js  c++  java
  • winform中使用委托进行窗体之间的传值

    一、传统的方式

    创建一个公共数据资源类,用于存储窗体2的TextBox的值:

        public class ComValue
        {
           public static string Txtvalue { get; set; }
        }
    

    窗体1的代码:

            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.Show();
            }
         //使用timer 不停的对label2进行复制 private void timer1_Tick(object sender, EventArgs e) { label2.Text = ComValue.Txtvalue; }

    窗体2的代码:

            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.Show();
            }
            private void timer1_Tick(object sender, EventArgs e)
            {
                label2.Text = ComValue.Txtvalue;
            }
    

    这种方式通过使用timer,消耗资源。

    二、使用委托传值,将form1为lable2赋值的方法传递给form2

    窗体1的代码:

            private void button1_Click(object sender, EventArgs e)
            {
           //将SetValue传递给Form2,让Form2来执行这个方法 Form2 f2 = new Form2(SetValue); f2.Show(); }      //给label2赋值的方法 void SetValue(string str) { label2.Text = str; }

    窗体2的代码:

            public delegate void del(string str);
            private del de1;
            public Form2(del del)
            {
                this.de1 = del;
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.de1.Invoke(textBox1.Text.Trim());//这里最终执行的是窗体1的SetValue函数
            }
    

    窗体界面与执行结果:

  • 相关阅读:
    android apk 反编译
    js 读 xml 非ie 可以支持 chrome 浏览器 与 android webView
    php+mySQl 环境搭建
    Activity 生命周期
    div 隐藏 显示 占空间 不占空间
    android 异步加载
    android 文件操作
    透明 GridView 背景透明
    eclipse 版本理解
    WebKit 上的JS直接使用Java Bean
  • 原文地址:https://www.cnblogs.com/netlws/p/8907249.html
Copyright © 2011-2022 走看看