当前位置:编程学习 > C#/ASP.NET >>

窗体传值

winforms中如何传值
例如
在form1中有textbox1,textbox2,textbox3,textbox4
现在要把textbox中的值传到form2中的datagridview中如何操作 --------------------编程问答-------------------- 可以设置几个全局静态变量
在form1弹出form2的事件里把textbox1..里的值设置到那几个变量里
而后在form2里的form_load事件里取得值 再加进datagridview里 --------------------编程问答-------------------- 用委托和事件来完成!给个地址看下是否有帮助!
http://jclhy.bokee.com/viewdiary.42173529.html --------------------编程问答-------------------- ding --------------------编程问答--------------------
引用 1 楼 netboygg 的回复:
可以设置几个全局静态变量
在form1弹出form2的事件里把textbox1..里的值设置到那几个变量里
而后在form2里的form_load事件里取得值 再加进datagridview里

可以这样实现 --------------------编程问答-------------------- 如果是form1调用form2的话 直接传给form2的构造方法 构造方法里调用form2中的datagridview
如果不是form1调用form2的话,那就把form2中的datagridview 定义成静态的方法static方法
然后在form1中直接调用form2.datagridview  即可
--------------------编程问答-------------------- 有没有人贴点代码上来看看啊 --------------------编程问答-------------------- 你还可以把FORM1里的控件的值存在另外的全局变量中(比如另外建一个常量的类,定义几个全局变量),然后别的地方就可以直接调用,而且不会影响FORM1里原控件的值。 --------------------编程问答--------------------

//用法不止一种。。可以用构造函数来做,也可以用static,还可以用属性..

form2:

 private string str = string.Empty;

      public string Str
      {
        set { str = value; }
      }


form1:

 private void button1_Click(object sender, EventArgs e)
      {
        Form2 frm = new Form1();
        frm.Str = textBox1.Text;
        frm.ShowDialog(this);
        frm.Dispose();
      }
//这样值传过去以后,再在Form2的Load事件里添加进DataGridView就行了..
--------------------编程问答--------------------
引用 8 楼 hanhanmj 的回复:
C# code

//用法不止一种。。可以用构造函数来做,也可以用static,还可以用属性..

form2:

 private string str = string.Empty;

      public string Str
      {
        set { str = value; }
      }


form1:

 private void button1_Click(object sender, EventArgs e)
      {
        Form2 frm = new Form2();    //错了个地方
        frm.Str = textBox1.Text;
        frm.ShowDialog(this);
        frm.Dispose();
      }
//这样值传过去以后,再在Form2的Load事件里添加进DataGridView就行了..
--------------------编程问答-------------------- 在form1中写个属性,在form2中直接获取不就可以了,又不是在form2中改变form1中textbox的值。 --------------------编程问答-------------------- 这个问题提的有点模糊,实现方式有多种,楼上的都说了,关键是楼主要怎么去实现。 --------------------编程问答-------------------- 如果用全局变量,会不会造成内存大量占用?因为即使form2等这些窗体不用了,全局变量占用的内存也不会被回收。

--------------------编程问答--------------------
引用 12 楼 yegaofei 的回复:
如果用全局变量,会不会造成内存大量占用?因为即使form2等这些窗体不用了,全局变量占用的内存也不会被回收。


那就用构造函数,或者委托 --------------------编程问答-------------------- 构造函数 --------------------编程问答-------------------- 设置全局变量比较方便。 
--------------------编程问答-------------------- 传构造函数或者用MDI传再就是用静态的 --------------------编程问答--------------------
引用 8 楼 hanhanmj 的回复:
C# code//用法不止一种。。可以用构造函数来做,也可以用static,还可以用属性..
form2:privatestring str=string.Empty;publicstring Str
      {set { str= value; }
      }


form1:privatevoid button1_Click(object sender, EventArgs e)
  ¡­

我这是先打开form2在form2中有一个新增按钮
点新增按钮跳出form1
在form1中的textbox中输入再跳回form2把form1窗体中textbox的值带回form2
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,