我有2个表格。其中一个文本框显示所选客户的名称,另一个文件框具有datagridview以显示客户列表。 当我点击文本框时,第二个表单将打开。我想知道是否有可能双击datagridview单元格然后文本框的文本由datagridview选择单元格在第一个窗体上更改? 这是我的代码。
我写了这段代码来打开form2:
private void textBox1_Click(object sender, EventArgs e)
{
frmCustomer customer = new frmCustomer();
customer.ShowDialog();
}
并在form2中:
private void dataGridView1_CellDoubleClick(object sender,DataGridViewCellEventArgs e)
{
string name = dataGridView1.CurrentRow.Cells["clmName"].Value.ToString();
form1 f = new form1();
f.txtCustomer.Text = name;
this.close();
}
当form2关闭时,文本框中没有任何内容。
任何帮助?万分感谢
答案 0 :(得分:0)
创建Form2时,可以尝试将Form1作为参数传递。
private void textBox1_Click(object sender, EventArgs e)
{
frmCustomer customer = new frmCustomer(this); // this represents the Form1
customer.ShowDialog();
}
然后在form2上
private Form1 frm_1;
public Form2(Form1 frm)
{
InitializeComponent();
frm_1 = frm;
}
private void dataGridView1_CellDoubleClick(object sender,DataGridViewCellEventArgs e)
{
string name = dataGridView1.CurrentRow.Cells["clmName"].Value.ToString();
frm_1.txtCustomer.Text = name;
this.close();
}
这将完成工作。
答案 1 :(得分:0)
关闭第二张表格不会将其丢弃。第一种形式仍然可以访问其公共成员 第二种形式可以有一个公共财产,可以在关闭后通过第一种形式进行访问。
尝试以下方法: 第一个表格应包含:
private void textBox1_Click(object sender, EventArgs e)
{
frmCustomer customer = new frmCustomer();
customer.ShowDialog();
textBox1.Text = customer.Name;
customer.Dispose();
}
第二种形式应包含:
public string Name { get; private set; }
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
Name = dataGridView1.CurrentRow.Cells["clmName"].Value.ToString();
this.close();
}