【问题标题】:DataGridViewComboBoxColumn set the selectedindexDataGridViewComboBoxColumn 设置 selectedindex
【发布时间】:2011-07-19 01:29:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# winforms gridview datagridviewcombobox


    【解决方案1】:

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

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

    例如

    myDataGridViewComboBoxColumn.Value = "20";
    

    你的情况

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

    这里有更多关于DataGridViewComboBoxColumn的详细信息

    【讨论】:

    • 我试过这个`cbStudentCourse.ValueMember = CourseStudentStatus.Active.ToString();`但它仍然显示为空
    • 'ValueMember' 用于绑定你需要设置'Value' 属性
    • +1 不小心我做到了;找不到有价值的财产。只有 valueMember 和 Valuetype 可用
    • 你也可以在这里查看msdn.microsoft.com/en-us/library/…
    【解决方案2】:

    设置 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();
    }
    

    它对我很有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 2014-01-31
      • 1970-01-01
      相关资源
      最近更新 更多