首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

用dataGridView的CellMouseClick能不能进行传值啊该怎么解决

2012-01-08 
用dataGridView的CellMouseClick能不能进行传值啊?我想的是点击了某单元格后就把该单元格所在行的所有值传

用dataGridView的CellMouseClick能不能进行传值啊?
我想的是点击了某单元格后就把该单元格所在行的所有值传给form2中对应的文本框,并且隐藏form1,显示form2,所取得的值应该显示在相应的文本框中,但我做的却是显示form2时文本框中仍然为空,我的代码是这样的:
form1中CellMouseClick事件的定义:

public   partial   class   Form1   :   Form
        {
                public   string   _no;
                public   string   _name;
                public   string   _sex;
                public   string   _age;
                public   string   _dep;
……
……
  public   void   dataGridView1_CellMouseClick(object   sender,   DataGridViewCellMouseEventArgs   e)
                {
                        if   (e.ColumnIndex   <   0)
                        {
                                return;
                        }
                        else
                        {
                                _no   +=   dataGridView1[0,   e.ColumnIndex].ToString();
                                _name   +=   dataGridView1[1,   e.ColumnIndex].ToString();
                                _sex   +=   dataGridView1[2,   e.ColumnIndex].ToString();
                                _age   +=   dataGridView1[3,   e.ColumnIndex].ToString();
                                _dep   +=   dataGridView1[4,   e.ColumnIndex].ToString();
                                Form2   form2   =   new   Form2();
                                form2.Bind();
                                form2.Show();
                                this.Hide();
                        }
                }
        }

form2中定义了函数Bind
  public   void   Bind()
                {
                                Form1   form1   =   new   Form1();
                                this.label5.Text   =   form1._no;


                                this.textBox1.Text   =   form1._name;
                                this.textBox2.Text   =   form1._sex;
                                this.textBox3.Text   =   form1._age;
                                this.textBox4.Text   =   form1._dep;
                }
帮帮忙啊,以前都是做ASP.NET,传值很容易,现在来学窗体设计才发现这些东西好难啊

[解决办法]
=================
窗体之间的传值 有很多中方法:

现在我顺着你的思路 给你将一下
form2中定义了函数Bind
public void Bind()
{
Form1 form1 = new Form1();
}
// 当程序运行 到这行代码的时候,会进入 到 Form1 中去
从新初始化 变量
public string _no;
public string _name;
public string _sex;
public string _age;
public string _dep;
……
所以说 你在事件 中给变量 赋值 算是 白费了..

解决办法 :
将他们 设置 为 静态字段
public static string _name;
public static string _sex;
public static string _age;
public static string _dep;
这样就可以了....................................

热点排行