2010-04-09 25 views

回答

4

是否想从新窗体中隐藏其余的DataGridView?例如,如果您将DataGridViewRow传递给窗体,则新窗体可以直接获取值。但是这也会让他们访问DataGridView。

DataGridViewRow dgr = dataGridView.Rows[0]; 
MyForm myForm = new MyForm(dgr); // now the form has the Row of information. But it can also access the entire DataGridView as it is available in the DataGridViewRow. 

如果要删除对DataGridView的访问,请将行中的值放入容器并传递该容器。你可以使用像ArrayList,List等内置的东西,或创建自己的自定义容器。

+0

@smoore:的确,我会更新。 – galford13x 2010-04-09 20:40:28

+0

+1:很好的回答和评论撤回。 – 2010-04-09 20:48:14

+0

+1我首先将它设置为Array列表,但并不确定这是否是最佳解决方案。谢谢你的帮助。 – Ryan 2010-04-09 21:04:12

1

我会创建一个类,其中包含数据集中每列的属性。然后,您可以使用您的类的列表来存储所有内容,列表中的每个元素都是一行。然后您可以设置您的DataGridView.DataSource = yourList。当你需要传递一列时,只需通过列表中的那个元素即可。

如果你真的不需要为你的数据创建一个类,你也可以通过一个DataGridViewRow到你的函数。

+0

+1:同意,只要记住,如果传递DataGridViewRow,整个DataGridView被赋予新的表单。 – galford13x 2010-04-09 20:43:24

+0

我不确定我明白你的意思吗?你的意思是如果我简单地传入dataGridView.Rows [i]作为参数,而不是将其分配给新变量?我可以看到通过引用该行,但不是整个网格。 – 2010-04-09 20:49:37

+0

如果你做新的MyForm(dataGridView.Rows [0]);新窗体将具有DataGridViewRow。然后它可以通过DataGridViewRow.DataGridView属性访问整个DataGridView。如上所示,将它分配给一个新的变量也会做同样的事情。 – galford13x 2010-04-09 21:11:40

相关问题