private void btnAdd_Click(object sender, EventArgs e) { int counter = 0; if (dataGridView1.Rows.Count > 1) { while (counter != dataGridView1.Rows.Count - 1) { if (dataGridView1.Rows[counter].Cells[0].Value.ToString() ==txtName.Text) { MessageBox.Show("name already exist"); return; } counter++; } } if (txtName.Text == "") { MessageBox.Show("name field should not be empty"); return; } else { dataGridView1.Rows.Add(txtName.Text); }
答案 0 :(得分:0)
如果正在打开对话框,输入数据然后关闭对话框,则根本不应该调用Show
。你应该改为调用ShowDialog
,它将表单显示为模态对话。在这种情况下,调用者可以通过在显示对话之前设置属性或传递方法参数将数据传递到对话框,然后通过获取属性或获取方法返回值来获取数据。然后由调用者根据数据执行所需操作,这意味着您的form2
可以填充自己的网格。
E.g。
using (var dialogue = new Form3())
{
// Pass data in as required.
dialogue.SomeProperty = someValue;
// Display the dialogue...
if (dialogue.ShowDialog() == DialogResult.OK)
{
// ...and get data out if the user clicks OK.
someOtherValue = dialogue.SomeOtherProperty;
// Use data here.
}
}
由您来定义对话表单中的相应成员以公开您想要的数据。
答案 1 :(得分:-1)
将Reference of DataGridView
传递给form 3
。
第1步:创建form3
的过载构造函数。
DataGridView dg;
public Form3(ref DataGridView dgv)
{
InitializeComponent();
dg=dgv;
}
第2步:从Form2,如何致电,在form2 datagridview reference
传递form3 constructor
...
form3 frm = new form3(ref datagridview1);
frm.show();
第3步:您的Form3代码..
private void btnAdd_Click(object sender, EventArgs e)
{
int counter = 0;
if (dg.Rows.Count > 1)
{
while (counter != dg.Rows.Count - 1)
{
if (dg.Rows[counter].Cells[0].Value.ToString() ==txtName.Text)
{
MessageBox.Show("name already exist");
return;
}
counter++;
}
}
if (txtName.Text == "")
{
MessageBox.Show("name field should not be empty");
return;
}
else
{
dg.Rows.Add(txtName.Text);
}
}