因此,我尝试通过点击datagridview
中的一行,将数据从textbox
加载到datagridview
。
我现在有这个:
private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
try
{
DataGridViewRow dr = dataGridView1.SelectedRows[0];
this.Hide();
frmPrincipal frm = new frmPrincipal();
frm.txtCarga.Text = dr.Cells[0].Value.ToString();
frm.txtCarga.Focus();
frm.txtCarga.SelectAll();
}
catch (Exception ex)
{
MessageBox.Show("Erro\nDetalhes: " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
但是因为我没有frm.Show()
它没有显示。基本上我按F1和另一个带有datagridview
节目的表格,然后我会点击该行将值放入textbox
。但它不起作用。
我该怎么办?
答案 0 :(得分:0)
您将更改dataGridFrom以包含您设置的公共属性,并可在关闭后从原始调用表单中调用。
public string dataValue = "";
private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
try
{
DataGridViewRow dr = dataGridView1.SelectedRows[0];
dataValue = dr.Cells[0].Value.ToString();
this.Close();
}
catch (Exception ex)
{
MessageBox.Show("Erro\nDetalhes: " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
在原始形式中,您有类似
的地方dataGridFrom.Show();
您想要将其更改为
dataGridFrom.ShowDialog();
这会在等待此dataGridform关闭时暂停其他表单。在那之后你想要添加(显示上一行帮助)
dataGridForm.ShowDialog();
this.txtCarga.Text = dataGridFrom.dataValue;
这将关闭表单并将文本框更新为您想要的内容。你也可以做Show(),但你需要创建一个我认为的事件,这样会容易得多。