我想要做的是当用户双击一行时会弹出一个单独的表单。然后使用TextBoxes
中的值填充新表单中的DataGridView
。我可以通过双击显示表单,之后我不知道该怎么办?
我的代码:
private void dgvTable_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
FrmInfo frmInfo = new FrmInfo();
frmInfo.ShowDialog();
frmInfo.Dispose();
var notes = dgvTable.Rows[e.RowIndex].Cells["Notes"].Value;
}
由于
答案 0 :(得分:1)
很容易! 首先,您无法以vb.net正常的方式访问c#中的其他表单控件,因此您可以执行以下操作:
1-在表单构造函数中,添加用于处理接收数据的参数。
2-在InitializeComponent()之后; void添加如下代码行:
public frm1(string txt1, string txt2, string txt3)
{
InitializeComponent();
textBox1.Text = txt1;
textBox2.Text = txt2;
textBox3.Text = txt3;
}
处理datagridview dg_RowHeaderMouseDoubleClick 事件:
注意:你也可以在你的例子中处理CellDoubleClick事件,但我的事件更有意义。
1-创建变量以保存发送的数据。
2-为将处理数据的表单创建一个新的表单实例,并以所需的顺序将行单元格数据传递给方法参数。
private void dg_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
//Collect the row cells values:
string val1 = dg.Rows[e.RowIndex].Cells[0].Value.ToString() //data of the first cell in the row
string val2 = dg.Rows[e.RowIndex].Cells[1].Value.ToString() //data of the second cell in the row
string val3 = dg.Rows[e.RowIndex].Cells[2].Value.ToString() //data of the third cell in the row
//Initialize a new instance of the data handle form and send the row data to it:
var newFrm = new frm1(val1, val2, val3);
newFrm.Show();
}
依此类推,您可以创建尽可能多的参数。