6

こんにちは、ランタイムでデータを datagridview コンボボックスにバインドします。しかし、最初のアイテムを自動表示するにはどうすればよいですか? DataGridViewComboBoxColumn から selectedindex を見つけることができません。

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

-- 更新 ---
解決策 3 で誰かがこれを行っているのを見ました
LINK
最初の項目を選択するだけでこんなに長いコードが必要ですか????

4

2 に答える 2

8

DataGridViewComboBoxColumnSelectedIndexには、およびSelectedValueプロパティがありません。SelectedValueただし、プロパティを設定することで と同じ動作を得ることができValueます。

たとえば、最初のインデックスで値メンバーの値が 2 の場合、.Value = "2"選択した最初のインデックスを設定するように設定する必要があります。

例えば

myDataGridViewComboBoxColumn.Value = "20";

あなたの場合

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

DataGridViewComboBoxColumnの詳細はこちら

于 2011-03-20T09:11:04.443 に答える
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();
}

それは私と非常にうまくいきました

于 2012-01-14T12:15:57.457 に答える