2010-04-09 40 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

相關問題