2012-01-03 6 views
3

私は1つのコンボボックス列を持つdatagridviewを持っています。私はコンボボックスの列に値を設定します。私はコンボボックスの列から任意のテキストを選択すると、私はループのデータを読むときに値を取得する必要があります。Datagridivew DataGridViewComboBoxColumn値メンバーを選択

dgFilterは、ここでは、ここでのDataGridView

  DataGridViewComboBoxColumn dgcoSpec = new DataGridViewComboBoxColumn(); 
      dgcoSpec = new DataGridViewComboBoxColumn(); 
      dgcoSpec.DataSource = loadOperators(); 
      dgcoSpec.DisplayMember = "Operatortxt"; 
      dgcoSpec.ValueMember = "Operatorvalue"; 
      dgcoSpec.AutoComplete = true; 
      dgcoSpec.HeaderText = "Operators"; 
      dgcoSpec.Name = "Operators"; 
      dgcoSpec.DefaultCellStyle.NullValue = "--Select--"; 
      dgcoSpec.Width = 130; 
      dgFilter.Columns.Insert(1, dgcoSpec); 

コンボボックス列

for (int i = 0; i <= dgFilter.Rows.Count - 1; i++) 
{ 
    strOperator = dgFilter.Rows[i].Cells[1].Value.ToString().Trim(); 
} 

から、私はデータを読み込む。この方法ですが、問題は、私はむしろ、私は表示部材を取得していますCOMBOX値メンバを取得しておりませんです。 forループからvalueメンバーを抽出する方法コードで案内してください。おかげ

答えて

1

値メンバーDataGridViewComboboxCell内に表示される文字列です。

実際のComboboxコントロールは、ユーザーがセルを編集している期間にのみ存在します。

あなたがDataGridViewComboboxCell項目のリストの値のインデックスを取得したいことを意味している場合は、値のインデックス照会できます。この例では

for (int i = 0; i <= dgFilter.Rows.Count - 1; i++) 
{ 
    var cell = dgFilter.Rows[i].Cells[1] as DataGridViewComboboxCell; 
    int index = cell == null || cell.Value == null ? -1 : cell.Items.IndexOf(cell.Value); 
    Console.WriteLine(index); 
} 

を、私は-1を使用していますは無効です値です。

EDITちょうどあなたがDataSourceを使用していることがわかりました。 可能な重複についてはDataGridViewComboBoxColumn name/value how?を参照してください。

関連する問題