zoukankan      html  css  js  c++  java
  • C# WinFrom 窗体传值

       public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            public string TextBox2Value //将外部不可访问的textBox2.Text封装成属性TextBox1Value
            {
                set { textBox2.Text = value; }
                get { return textBox2.Text; }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                this.DialogResult = DialogResult.OK;//这里的DialogResult是Form2类对象的属性
            }
    
        }

    委托传值

    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.ChangeText += new ChangeTextHandler(Change_Text);//将事件和处理方法绑在一起,这句话必须放在f2.ShowDialog();前面
                f2.ShowDialog();            
            }
    
           public void Change_Text(string str)
            {
                textBox1.Text = str;
            }  
        }
    }   
    
    
    
    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public delegate void ChangeTextHandler(string str);  //定义委托
    
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            public event ChangeTextHandler ChangeText;  //定义事件
    
            private void button2_Click(object sender, EventArgs e)
            {
                if (ChangeText != null)//判断事件是否为空
                {
                    ChangeText(textBox2.Text);//执行委托实例  
                    this.Close();
                }           
            }    
        }
    }

    Action<>泛型委托和lambda表达式

    //Form1中:
    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.ChangeText = (str) => textBox1.Text = str;//用lambda表达式实现,这句话必须放在f2.ShowDialog();前面
                f2.ShowDialog();            
            }
        }
    }
    
    
    //Form2中:
    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {  
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            public Action<string> ChangeText;//之前的定义委托和定义事件由这一句话代替
    
            private void button2_Click(object sender, EventArgs e)
            {
                if (ChangeText != null)//判断事件是否为空
                {
                    ChangeText(textBox2.Text);//执行委托实例  
                    this.Close();
                }           
            }    
        }
    }
  • 相关阅读:
    net.sf.fmj.media.cdp.civil.CaptureDevicePlugger addCaptureDevices解决方法
    SVN快速入门教程
    Struts 2详细工作流程
    未能加载.NET基类问题
    图片上传的例子
    一个.NET发邮件的简单例子
    一种巧妙的删除程序自己的方法
    oracle的问题
    javascript 中对Trim()的实现
    SQL Server 不存在或访问被拒绝的问题
  • 原文地址:https://www.cnblogs.com/lanyubaicl/p/11021564.html
Copyright © 2011-2022 走看看