2011-03-20 66 views
6

嗨我運行時將數據綁定到datagridview組合框。但是,我如何使它自動顯示第一項?我無法從DataGridViewComboBoxColumn中找到所選索引。DataGridViewComboBoxColumn設置選定的索引

DataGridViewComboBoxColumn cbStudentCourse = (DataGridViewComboBoxColumn)dgStudentCourse.Columns["studentCourseStatus"]; 
        cbStudentCourse.DataSource = Enum.GetValues(typeof(CourseStudentStatus)); 
        cbStudentCourse.DisplayIndex = 1; 

- 更新---
我看到有人這樣做,在溶液中3
LInk
你確定我需要這麼長的代碼只是第一個項目選擇??????

+0

任何人都可以幫忙嗎? – VeecoTech 2011-03-21 02:30:30

回答

8

A DataGridViewComboBoxColumn沒有SelectedIndexSelectedValue屬性。但您可以通過設置Value屬性來獲得SelectedValue的相同行爲。

例如,在第一個索引上,值成員的值爲2,則應該設置.Value = "2"以設置所選的第一個索引。

例如

myDataGridViewComboBoxColumn.Value = "20"; 

在你的情況

myDataGridViewComboBoxColumn.Value = CourseStudentStatus.EnumToBeSelected.ToString(); 

這裏是關於DataGridViewComboBoxColumn

+0

我試過''cbStudentCourse.ValueMember = CourseStudentStatus.Active.ToString();'但它仍然顯示爲空 – VeecoTech 2011-03-20 14:01:07

+0

'ValueMember'用於綁定您需要設置'Value'屬性 – 2011-03-21 13:53:00

+0

+1意外我做了;沒有價值的財產發現。只有valueMember和Valuetype可用 – 2014-03-28 13:55:38

5

設置的DataGridViewComboBoxCell的價值的最佳方式詳細信息是:

DataTable dt = new DataTable(); 
dt.Columns.Add("Item"); 
dt.Columns.Add("Value"); 
dt.Rows.Add("Item1", "0"); 
dt.Rows.Add("Item1", "1"); 
dt.Rows.Add("Item1", "2"); 
dt.Rows.Add("Item1", "3"); 
DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn(); 
cmb.DefaultCellStyle.Font = new Font("Tahoma", 8, FontStyle.Bold); 
cmb.DefaultCellStyle.ForeColor = Color.BlueViolet; 
cmb.FlatStyle = FlatStyle.Flat; 
cmb.Name = "ComboColumnSample"; 
cmb.HeaderText = "ComboColumnSample"; 
cmb.DisplayMember = "Item"; 
cmb.ValueMember = "Value"; 
DatagridView dvg=new DataGridView(); 
dvg.Columns.Add(cmb); 
cmb.DataSource = dt; 
for (int i = 0; i < dvg.Rows.Count; i++) 
{ 
dvg.Rows[i].Cells["ComboColumnSample"].Value = (cmb.Items[0] as 
DataRowView).Row[1].ToString(); 
} 

它與我很好地合作

相關問題