2016-09-14 32 views
0

我有一個包含名稱和ID的SortedDictionary(字符串,字符串)。字典中的值是名稱,密鑰是ID。如果它使生活更輕鬆,這些可以逆轉。在DataGridView中使用字典

我希望做的是在組合框的下拉列表中顯示名稱,當用戶選擇一個名稱時,代碼將填充到DataGridView的第二列中。

到目前爲止,我有這樣的:

bindSrcPDF = New BindingSource(dicSorted, Nothing) 
    col = grdAuthors.Columns(0) 
    col.DisplayMember = "Value" 
    col.DataSource = bindSrcPDF 

    col = grdAuthors.Columns(1) 
    col.DisplayMember = "Key" 
    col.DataSource = bindSrcPDF 

這顯示出在各行中的組合框droplist的名字,但我無法弄清楚如何讓文本框在第二列以顯示與所選名稱對應的代碼。

任何幫助將不勝感激 - 謝謝。

回答

0

您必須首先將值加載到Combobox中。

ComboBox1.DisplayMember = "ID" 
ComboBox1.ValueMember = "Name" 

然後選擇單擊事件。在這種情況下,你編寫代碼來清除舊數據和加載新源的DataGridView

dataGridView1.Rows.Clear() 
dataGridView1.Refresh() 
dataGridView1.DataSource = your_data_source 

對於手柄datagridcomboboxColumn您可以查看下面 https://social.msdn.microsoft.com/Forums/windows/en-US/453d7584-d4d3-495b-b3ed-5998758d9614/datagridviewcomboboxcolumn-selection-changed?forum=winformsdatacontrols

鏈接

http://www.dreamincode.net/forums/topic/338689-datagridview-combobox-selected-value-changed/

+0

謝謝,胡志明市,但我仍然不清楚 - 我懷疑我沒有足夠清楚地解釋原始問題。上面的代碼片段已經填充了組合框的列表。雖然我沒有設法將組合框和文本框連接到字典,但我想要的是,當用戶在組合框字段中選擇一個名稱時,DataGridView會「查找」相應的代碼。 對於DataGridView中的組合框,似乎沒有OnClickEvent - 只是網格本身的一般組件。我會看看我是否可以說服它工作。 –

+0

對於處理datagridcomboboxColumn,你可以查看上面的鏈接 – Minh