最直接的方法可能是将其包含在Form2
. 所以Form2
你会有这样的东西:
public Form2(int clientID)
{
// Do something with the clientID
// Most likely set it to a property on Form2, or a private member.
}
然后,Form1
当您创建它的实例时,Form2
它可能看起来像这样:
var index = clientesgrid.SelectedRows[0].Index;
var editForm = new Form2(index);
editForm.Show();
理想情况下,您希望此参数成为客户端的标识符,而DataGridView
不仅仅是从on 开始的行索引Form1
。这样做的原因是因为如果它只是一个行索引并且该行包含您需要的数据然后Form2
没有它需要的数据,它仍然依赖于Form1
获取更多数据。
尽可能减少依赖。的任何实例都Form2
应该在其构造函数中要求任何它需要的东西才能完成它的工作。然后任何其他形式都可以创建一个实例,Form2
只要它可以提供它需要的东西。
如果Form2
总是需要这个标识符,那么您可能会采取额外的步骤将其无参数构造函数设为私有:
private Form2() { }
Form2
这将防止其他表单在不提供所需值的情况下创建实例。