精华内容
下载资源
问答
  • 本文中以主窗体为frmMain,子窗体为frmGroup ,两窗体之间的传值来做示例。 方式一: 使用公共静态变量传值窗体frmMain中代码 public partial class frmMain : Form { //声明工位ID 为公共静态变量 public ...
  • 进行用C#来开发windows应用程序项目时,不同窗口之间传值有很多种不同的方法, 假设项目中有两个窗体,Form1和Form2,要实现的效果是:点击Form1中的按钮打开From2,点击Form2中的按钮改变窗体Form1的背景颜色。...
  • 点击form2窗体按钮返回结果20赋值给form1窗体文本框 form1代码如下: //计算按钮事件 private void Button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.f += F2_f; //注册事件...
    • 点击form2窗体按钮返回结果20赋值给form1窗体文本框
      form1代码如下:
       //计算按钮事件
              private void Button1_Click(object sender, EventArgs e)
              {
                  Form2 f2 = new Form2();
                  f2.f += F2_f;     //注册事件,只能+=
                  f2.ShowDialog();
              }
      
              private int F2_f(int arg)
              {
                  textBox1.Text = arg.ToString();
                  return 1;
              }
       
      
      form2代码如下:
       public event Func<int, int> f;  //声明事件委托变量f,类型为int,返回值为int
      
      //form2按钮事件
              private void Button1_Click(object sender, EventArgs e)
              {
                  //给form1窗体的文本框赋值20
                  if (f != null)
                  {
                      f(20);
                  }
              }
       
      
      完成
      补充:因为此例子并没有使用返回值,所以可以使用泛型委托Action<int>
      转载于:https://www.cnblogs.com/micc/p/10673328.html
      委托
    • 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事。
    • 委托是一个类型
    • 事件是委托变量实现的
    • 经典例子:两个winform窗体传值
    1. 定义两个窗体:form1和form2
    2. form1上有一个文本框,一个按钮
    3. 点击计算按钮调出form2
    展开全文
  • 本文最早发布在百度空间里,但百度空间取消了,...特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中 int value1; string value2; public Form2 ( int value1 , string value2 ) {...

    本文最早发布在百度空间里,但百度空间取消了,转到这里来。文章虽然有点老,但对学习C#的小伙伴应该还用得上。
    1.通过构造函数
    特点:传值是单向的(不可以互相传值),实现简单

    实现代码如下:
    在窗体Form2中

       int value1;
        string value2;
            public Form2 ( int value1 , string value2 )
            {
                InitializeComponent ( );
                this.value1 = value1;
                this.value2 = value2;
            }
    

    在窗体Form1中这样调用

    new Form2 ( 111 , "222" ).Show ( );  //这样就把111,"222",这2个值传送给了Form2
    

    2.通过静态变量

    特点:传值是双向的,实现简单

    实现代码如下:

    在一个app类中定义一个静态成员value

    public class app
    {
      public static string value;
    }
    

    在窗体Form1中这样调用

    app.value = "f2";        //给静态成员赋值
     new Form2 ( ).Show ( );  //显示Form2
    

    在窗体Form2中

    this.Text = app.value;  //取回app.value的值 
    app.value = "Form2";    //给app.value赋值,以便其他窗体调用
    

    3.通过窗体的公有属性值

    特点:实现简单

    实现代码如下:

    在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值

    public string Form2Value
     {
          get
           {
              return this.textBox1.Text;
           }
    
        set
        {
               this.textBox1.Text = value;
          }
       }
    

    在窗体Form1中这样调用

    Form2 = new Form2 ( );
    
    f2.Form2Value = "Ok";     //给Form2的textBox1赋值Ok
    
    f2.ShowDialog (  );
    

    4.通过窗体的公有属性值和Owner属性

    特点:实现简单,灵活

    实现代码如下:

    在窗体Form1中

    public int Form1Value = 1;
     Form2 = new Form2 ( );
        f2.ShowDialog ( this );       //把Form1作为Form2的所有者传递给Form2
    

    在窗体Form2中

     //Form2的所有者是Form1
        
        Form1 = ( Form1 ) this.Owner;
        
        //取到Form1的值是1
        
        MessageBox.Show ( f1.Form1Value .ToString ( ) );
        
        //给Form1的Form1Value赋值222
        
        f1.Form1Value = 222;
    

    5.通过窗体的公有属性值和Application.OpenForms属性

    说明:Application.OpenForms属性:获取属于应用程序的打开窗体的集合。(此属性在.NET Framework2.0版中)

    实现代码如下:

    在窗体Form1中

    public int Form1Value = 1;
        Form2 = new Form2 ( );
        f2.Show ( );
    

    在窗体Form2中

    string formName = "Form1";
     Form fr = Application.OpenForms [ formName ];
       if ( fr != null )
        {
           Form1 = ( Form1 ) fr;
            //取到Form1的值是1
            MessageBox.Show ( f1.Form1Value.ToString ( ) );
            //给Form1的Form1Value赋值222
            f1.Form1Value = 222;
        }
    

    6.通过事件

    实现代码如下:

    在窗体Form2中定义公有属性Form2Value,获取和设置textBox1的文本值

    并且还定义一个accept事件

    public string Form2Value
    
    {
        get
        {
           return this.textBox1.Text;
        }
        set
        {
            this.textBox1.Text = value;
        }
    }
    
    public event EventHandler accept;
       
    
    private void button1_Click ( object sender , EventArgs e )
    {
        if ( accept != null )
        {
            accept ( this , EventArgs.Empty );  //当窗体触发事件,传递自身引用
        }
    }
    

    在窗体Form1中

    Form2 = new Form2 ( );
    f2.accept += new EventHandler ( f2_accept );
    f2.Show ( );
    
    void f2_accept ( object sender , EventArgs e )
    {
     //事件的接收者通过一个简单的类型转换得到Form2的引用
        Form2 = (Form2) sender;
     //接收到Form2的textBox1.Text
        this.textBox1.Text = f2.Form2Value; 
    }
    
    展开全文
  • 创建一个Winform窗体应用程序项目,然后添加一Form2窗体。 在Form1和Form2中各添加一textBox和button:   单击Form1中的button1,弹出Form2,然后要做的就是在Form1中的textBox1和Form2中的textBox2中...

    创建一个Winform窗体应用程序项目,然后添加一个Form2窗体。

    在Form1和Form2中各添加一个textBox和button:

     

    单击Form1中的button1,弹出Form2,然后要做的就是在Form1中的textBox1和Form2中的textBox2中传值。

     

    为了方便起见,将Form1称作父窗体,将Form2称作子窗体

     

    相对来说,将父窗体的值传到子窗体较为容易实现。下面分别进行说明。

    一、父窗体传值给子窗体。

     

    方法1:通过Form类构造方法的重载传参。

    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(textBox1.Text);
                f2.ShowDialog();
            }
        }
    }

    Form2类中代码:

    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            public Form2(string str)
            {
                InitializeComponent();
                textBox2.Text = str;//这句必须放在InitializeComponent();的后面,否则会引起“空引用异常”
            }
    
        }
    }

     

     

    方法2:通过外部可访问的中间变量传参。

    先看一串无法实现目的的代码。

    Form1中:

    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            public string str;//public类型的实例字段
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                str = textBox1.Text;//注意,这句不能放在f2.ShowDialog();的后面,否则会先执行textBox2.Text = f1.str;再执行str = textBox1.Text;
                f2.ShowDialog();
            }
        }
    }

    Form2中:

    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void Form2_Load(object sender, EventArgs e)
            {
                Form1 f1 = new Form1();
                textBox2.Text = f1.str;
            }
    
        }
    }

    结果值没有传过来:

    这是因为:Form1 f1 = new Form1();相当于新建了一个对象,这个新对象的str初始值是null(只有该对象的button1被click的时候才会改变str的值)。textBox2.Text = f1.str;其实就是将null赋给了textBox2.Text。

    调试如图:

     

    static变量可以认为是全局变量,static变量被所有对象所共有,也可以被所有对象所改变,将相关代码修改如下即可:

     public static string str;//public类型的实例字段
    
    
            private void Form2_Load(object sender, EventArgs e)
            {
                textBox2.Text = Form1.str;
            }
    

    它有一种变式:

    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.str = textBox1.Text;
                f2.ShowDialog();
    
            }
        }
    }

    Form2中:

     using System;
     using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            public string str;//这里str是在Form2类中定义的,并且不需要static关键字
    
            private void Form2_Load(object sender, EventArgs e)
            {
                textBox2.Text = str;
            }
    
        }
    }

    分析: f2.str = textBox1.Text;将textBox1的值赋给f2.str,由于f2.ShowDialog();跳出来的刚好是这个对象,因此这个对象的str值不为空。最终通过textBox2.Text = str;将值传过去了。跟上一个例子的不同之处是:str声明的位置不一样,一个是在Form1类中,一个是在Form2类中。

     

    一、子窗体传值给父窗体。

     

    方法1:通过Owner设置窗口归属来传值。

    ① 通过Controls

    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.ShowDialog(this);//这个this必不可少(将窗体显示为具有指定所有者:窗体f2的所有者是Form1类当前的对象)
            }
        }
    }

    Form2中:

    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Form1 f1 = (Form1)this.Owner;//将本窗体的拥有者强制设为Form1类的实例f1
                f1.Controls["textBox1"].Text = textBox2.Text;
            }
    
        }
    }

    ② 通过在控件所在类中增加改变控件属性的方法

    或者通过在Form1中添加一个ChangeText方法也行:

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

    Form2中代码相应改变为:

      private void button2_Click(object sender, EventArgs e)
            {
                Form1 f1 = (Form1)this.Owner;//将本窗体的拥有者强制设为Form1类的实例f1
                f1.ChangeText(textBox2.Text);
            }
    

    注意:如果不用Owner,仅仅想用下面的代码实现,是没可能的。

    //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.ShowDialog();
            }
    
            public void ChangeText(string str)
            {
                textBox1.Text = str;
            }
        }
    }
    
    
    //Form2中:
    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Form1 f1 = new Form1();
                f1.ChangeText(textBox2.Text);
            }
    
        }
    }
    
    //这种代码无法实现目的

    ③ 通过将外界不可访问的控件“属性”封装成可以访问的属性。

    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.ShowDialog(this);
            }
    
            public string TextBox1Value
            {
                set { textBox1.Text = value; }
                get { return textBox1.Text; }
            }
    
        }
    }

    Form2中:

    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Form1 f1 = (Form1)this.Owner;
                f1.TextBox1Value = textBox2.Text;
            }
        }
    }

    方法2:通过提供外部可访问的属性和DialogResult的状态来传值(这个例子同时实现了父传子、子传父)。

    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.TextBox2Value = textBox1.Text;//顺便把父窗体的值先传给子窗体
    
                //这一行不需要再写f2.ShowDialog();或者f2.Show();,否则f2会弹出来两次
    
                if (f2.ShowDialog() == DialogResult.OK)//这样的语句是合法的:DialogResult f = f2.ShowDialog();
                {
                    textBox1.Text = f2.TextBox2Value;
                    //f2.Close();//这一句写或者不写,f2都会关闭
                }
            }
        }
    }

    Form2中:

    
    using System;
    using System.Windows.Forms;
    
    namespace WindowsForms跨窗体传值大全
    {
        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类对象的属性
            }
    
        }
    }

    方法3:通过委托事件来传值。(这种方式可以实现不同控件数据实时联动的复杂功能)

    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 += new ChangeTextHandler(Change_Text);//将事件和处理方法绑在一起,这句话必须放在f2.ShowDialog();前面
                f2.ShowDialog();
            }
    
            public void Change_Text(string str)
            {
                textBox1.Text = str;
            }
        }
    }

    Form2中:

    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();
                }
            }
        }
    }

     可以用.NET提供的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();
                 }           
             }    
         }
     }
    
    ​

     

    展开全文
  • WinForm】—窗体之间传值的几种方式

    万次阅读 多人点赞 2018-03-25 13:01:45
    前言 &nbsp;&nbsp;&nbsp;&nbsp;小编最近维护一Winfrom窗体,是项目中...本文中以主窗体为frmMain,子窗体为frmGroup ,两窗体之间的传值来做示例。 方式一: 使用公共静态变量传值窗体frmMa...

    前言

        小编最近维护一个Winfrom窗体,是项目中CS端的主窗体,很多子窗体需要从主窗体获取值,同时子窗体还需要给主窗体回传值,下面来给大家介绍一下。

    正文

        本文中以主窗体为frmMain,子窗体为frmGroup ,两窗体之间的传值来做示例。

    方式一: 使用公共静态变量传值

    主窗体frmMain中代码

    public partial class frmMain : Form
    {
     //声明工位ID 为公共静态变量
     public static string terminalID = "";
     //给静态变量赋值
     terminalID = "q13bh01-bh12";
     }

    子窗体frmGroup中代码

     private void frmGroup_Load(object sender, EventArgs e)
    {
        this.txtTerminalID.Text= frmMain.terminalID.Trim(); 
        //可以再赋值给静态成员,方便其他窗体调用
        frmMain.terminalID = "q13bh01-bh11";
    }

    特点 : 双向传值,实现简单
    缺点: 静态变量在类加载的时候分配内存,存储于方法区,一般不会被销毁,在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误。

    方式二: 使用公共变量传值

    主窗体frmMain中代码

    public partial class frmMain : Form
    {
     //声明工位ID 为公共变量
     public string terminalID = "";
     //给变量赋值
     terminalID = "q13bh01-bh12";
     //单击‘行为’按钮的时候会给窗体传值
      private void btnGroup_Click(object sender, EventArgs e)
            {
                frmGroup frmGro = new  frmGroup();
                //变量传值 ,注意顺序写在ShowDialog()方法之前
                frmGro .stationID = this.terminalID;
                frmGro .ShowDialog();
            }
     }
    

    子窗体frmGroup中代码

      public partial class frmGroup : Form
      {
        //定义公共属性
        public string stationID = "";
      }

    特点 : 单向传值,只能主窗体给子窗体传值,实现简单

    方式三: 使用委托传值

    先来看子窗体frmGroup中代码

    namespace Siemens.Simatic.GUIClient.MESClient
    {
        //1、声明一个委托
        public delegate void setTextValue(string textValue,bool flag);
        public partial class frmGroup : Form
        {
            //2、声明一个委托类型的事件
             public event setTextValue setFormTextValue;
             public string groupName = "";
             public bool flagBtnGroup = false;  
             public frmGroup()
             {
               InitializeComponent();
             }
              //轮询‘行为’按钮(相当于按钮单击事件)
              private void tmrBtn_Tick(object sender, EventArgs e)
              {
                if (sender is ButtonX) {
                    ButtonX butX = (ButtonX)sender;//判断触发事件的是不是Button
                    groupName = butX.Text.Trim();
                    flagBtnGroup = true;
                    //3、准备要回传的数据。  
                    setFormTextValue(this.groupName.Replace(" ", ""), this.flagBtnGroup );
                    this.Close();
                    return;
                } 
            }

    主窗体frmMain中代码

      private void btnGroup_Click(object sender, EventArgs e)
            {
                frmGroup frmGro = new  frmGroup();
                 //4、初始化事件  
                frmGro .setFormTextValue += new setTextValue(frmGro _setFormTextValue);
                //变量传值 ,注意顺序写在ShowDialog()方法之前
                frmGro .stationID = this.terminalID;
                frmGro .ShowDialog();
            }
            //5、事件具体实现
             public void frmGro _setFormTextValue(string textValue,bool flag)
            { 
                this.newGroupName = textValue;
                this.flagBtnGroup = flag;
                if (!string.IsNullOrEmpty(newGroupName))
                {
                     ……
                }
             }
    

    特点 :适合子窗体数据实时回传父窗体。

    叨叨两句

        项目中父窗体向子窗体传值传的是固定值,用的是第一种方式,子窗体向父窗体传值传的是变化的值,用的是第三种方式,第三种方式为我解决了一个大麻烦。

    总结

        感谢您的阅读,窗体传值有好多种方法,构造参数参数传值、公共属性传值等,各种场景下找到适合需求的最好,希望为小编提出宝贵意见!

    展开全文
  • 两个窗体 form1,form2 1为登录 2为注册 我在form2中设置 public string 用户名;,public string 注册密码; 在form1中定义string w=this.textbox.text(form1的用户名输入), string h=this.textbox2.text(密码...
  • C#winform个窗体之间相互传递数据操作。弹出一个新窗体,选中一个数据并传递到父窗体的某个控件上,可以是TextBox也可以是DataGrideView之间相互传递数据,处理并刷新等。
  • 【1】子窗体与父窗体传值,见:...前提:Form1座位父窗体,然后它new出来了两个个子窗体分别为Form2与Form3; 要求:可以及时把Form2中产生的数据,传递给Form3,更新Form3;如果Form3没有被打开,则不传递。 窗体设计
  • winform项目中,多个窗体间的传值是很多人比较关注的问题,因为在实际的项目开发中,这个技术是必须的。这个技巧的实现,不只是有一种方法,我们可以从多方入手,今天呢,就讲解种方法。 第一种方法,利用委托和...
  • winform跨界面传值

    2017-04-28 11:27:10
    通过委托实现winform跨界面传递内容的demo
  • 最近工作室为了应付 比赛 赶了一排课系统 我负责排课的功能 写了一星期终于赶出来了 用到了Winform窗体传值。 一开始我是直接将Form1窗体传入Form2窗体的构造函数 前提是 Form2中有From1的类成员Form1 ...
  • winform 窗体间委托事件传值
  • 编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单。以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返回给FormMain 1. FormMain和...
  • 下面我实现一最简单的页面传值功能,相信初学者能一看就明白。 点击打开按扭,打开传输值窗体 public partial class Form1 : Form  {  public Form1()  {  InitializeComponent();  }  public void ...
  • 窗体,选择行,得到当前行,传递给子窗体,一般通过 子窗体构造函数,加参数传递,参数少,可直接传 某个要修改的值,如果 修改的多,一般都是取出当前行 ,进行传递。 C# code ? 1 2 3 ...
  • 在《VB.NET学习笔记:窗体显示及互相传值》一文中,通过默认的窗体实例、保持窗体引用的全局性或在窗体构造函数中把窗体指针作为参数传递,这些方法都是直接操作窗体中的任何控件来读取和改变窗体内的信息。...
  • Winform子窗体关闭给父窗体传值

    千次阅读 2018-04-04 14:20:57
    //父窗体 private void btnAdd_Click(object sender, EventArgs e) { FormAddHotKey m_FormAddKey = new MyAutomaticTextInput.FormAddHotKey(); m_FormAddKey.Owner = this; ...
  • c#多个窗体之间传值

    万次阅读 多人点赞 2017-06-25 17:15:06
    个窗体传值,就是把一个窗体中的值通过某种方式传递给另一个窗体,如把A窗体的一个textbox中的字符串(但不限于字符串,简单起见,只展示一个字符串),传递给另一个窗体B的textbox(接受字符串)。个人知道的有...
  • 两个winform窗体之间的传值

    千次阅读 2010-09-06 16:18:00
    窗体一的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using ...
  • winform窗体给控件传值

    千次阅读 2014-08-02 16:33:38
    两个窗体 FormA,FormB; FormA窗体中有一T
  • 首先,新建两个窗体,父窗体Form1和子窗体Form2,添加控件如下。实现在子窗体的textBox中输入字符,实时显示在父窗体的textBox中的功能。 子窗体中代码: using System; using System.Windows.Forms; ...
  • WinForm中的窗体传值

    2010-12-26 15:21:00
    这样一来,如果我们想要从一个窗体向令一个窗体传值,便可在第一个窗体给这个类的此变量赋值,再另一窗体同样可以调用。 二:通过构造方法来传值(单向的传值) 这种方式比较简单,
  • 通过构造函数传值传值是单向的(不可以互相传值),在实例化时直接传值给子窗体,实现简单,最为常用。通过公有静态变量传值,通过窗体的公有属性传值,通过窗体的公有变量和Owner属性传值
  • C# Winform中的窗体传值

    2016-02-24 16:36:00
    关于C#winform窗体之间的传值有以下几种做法 1 通过构造函数传值 2 属性传值 以上两种方法不早详细介绍。... 1,创建两个窗体,分别是Form1和Form2 在Form1中添加一个Button按钮和一个TextBox控件,...
  • 百度云盘代码下载:http://pan.baidu.com/share/link?shareid=388120&uk=3627406265 窗体设计: 父窗体: 子窗体: 方法一: 1、子窗体设置一窗体MainFrm属性: public MainFrm MainFrm { get; set; } 2、在父...
  • C#中如何跨窗体传值

    千次阅读 多人点赞 2018-03-06 17:53:44
    方法1:和VB中一样,定义全局变量。 首先,先建一个类,再定义一个共有的静态的变量。 public class Class1 ...再建立两个窗体,Form1和Form2。 Form1中: private void button1_Click(object sender, Even
  • c#下两个窗体之间互相传值的实例 实现的思路: 从Form1传递到Form2: 2个窗体即两个类,两个窗体间的数据传送,可以采用构造函数来实现。 从Form2返回到Form1,并传递数据:实例化Form2后,打f2用ShowDialog()方法,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 783
精华内容 313
关键字:

winform两个窗体传值