读书人

用dataGridView的CellMouseClick能不能

发布时间: 2012-01-08 22:48:50 作者: rapoo

用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;
这样就可以了....................................

读书人网 >C#

热点推荐