请问,这有什么问题:
Form2_Closing:
Form1.DataGridView1.Rows[0].Cells[1].Value = "323";
错误:索引超出范围。必须是非负的且小于 集合的大小。参数名称:index
Form1上的DGV有10行和14列
答案 0 :(得分:1)
从您的评论中看起来您正在尝试创建一个自定义对话框,该对话框将在调用表单上的DataGridView
内操作特定值。我建议查看this创建自定义消息框的示例。
您将能够返回说明您想要更新DataGridViewCell
的值,然后将其设置在Form1
上。
答案 1 :(得分:1)
创建一个新的Winforms项目并添加一个按钮&它的click处理程序和TextBox [使其可访问,以便子进程可以设置值。我现在已经在设计师中公开了] 。然后在此表单上添加以下代码。此外,在项目中添加新表单(Form2)。
private void button1_Click(object sender, EventArgs e)
{
var child = new Form2();
child.FormClosing += new FormClosingEventHandler(ChildFormClosing);
this.Enabled = false;
child.Show(this);
}
void ChildFormClosing(object sender, FormClosingEventArgs e)
{
var child = sender as Form2;
if (child != null)
{
if (child.DialogResult == DialogResult.None)
{
// do data grid view manipulation here
// for ex:
(child.Owner as Form1).textBox1.Text = "Hi";
}
}
Enabled = true;
}