我运行时将数据绑定到datagridview组合框中。但是如何让它自动显示第一项呢?我无法从DataGridViewComboBoxColumn中找到selectedindex。
DataGridViewComboBoxColumn cbStudentCourse = (DataGridViewComboBoxColumn)dgStudentCourse.Columns["studentCourseStatus"];
cbStudentCourse.DataSource = Enum.GetValues(typeof(CourseStudentStatus));
cbStudentCourse.DisplayIndex = 1;
- 更新---
我看到有人在解决方案3中这样做
LInk
你确定我需要这么长的代码来选择第一个项目??????
答案 0 :(得分:8)
DataGridViewComboBoxColumn 没有SelectedIndex
和SelectedValue
属性。但是,您可以通过设置 SelectedValue
属性来获得Value
的相同行为。
例如,在第一个索引上,value成员的值为2,那么您应该设置.Value = "2"
来设置所选的第一个索引。
例如
myDataGridViewComboBoxColumn.Value = "20";
在你的情况下
myDataGridViewComboBoxColumn.Value = CourseStudentStatus.EnumToBeSelected.ToString();
的详细信息
答案 1 :(得分: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();
}
它非常适合我