DataGridViewComboBoxColumn设置selectedindex

时间:2011-03-20 08:56:33

标签: c# winforms gridview datagridviewcombobox

我运行时将数据绑定到datagridview组合框中。但是如何让它自动显示第一项呢?我无法从DataGridViewComboBoxColumn中找到selectedindex。

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

- 更新---
我看到有人在解决方案3中这样做 LInk
你确定我需要这么长的代码来选择第一个项目??????

2 个答案:

答案 0 :(得分:8)

DataGridViewComboBoxColumn 没有SelectedIndexSelectedValue属性。但是,您可以通过设置 SelectedValue 属性来获得Value的相同行为。

例如,在第一个索引上,value成员的值为2,那么您应该设置.Value = "2"来设置所选的第一个索引。

例如

myDataGridViewComboBoxColumn.Value = "20";

在你的情况下

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

以下是有关DataGridViewComboBoxColumn

的详细信息

答案 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();
}

它非常适合我