2012-01-27 23 views
2

私はC#で新しく、本当に止まっています。私は簡潔にしようとします。2編集可能なDataGridViewComboBox(データバインドされていない)を有効にする際の問題C#

DataGridViewに(同じ列にある)ComboBoxがあり、ユーザーがComboBoxに入力できるようにしたいと思います。私はそれを半作業にしました...

*問題1:私が入力すると、入力した内容がドロップダウンの選択リストに追加されても、ComboBoxは空白になります。今入力した値を再選択します。どのようにして私がタイプした値が選択として残り、空白にならないようにすることができますか?

*問題2: 特定のコンボボックスを同じ列に編集できないようにする方法はありますか?私のコードは、ComboBoxのすべてのユーザーを編集可能にするようです。どのようにしてコンボボックスの例外をいくつか作成できますか?

ご協力いただきありがとうございます。ここで

はコードです:

private void dm_dgview_add_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 
     { 
      if (e.Control.GetType() == typeof(DataGridViewComboBoxEditingControl)) 
      { 
       DataGridViewComboBoxEditingControl combo = e.Control as DataGridViewComboBoxEditingControl; 
       combo.DropDownStyle = ComboBoxStyle.DropDown; 
       combo.TextChanged += new EventHandler(combo_TextChanged); 
      } 
     } 

     void combo_TextChanged(object sender, EventArgs e) 
     { 
      dm_dgview_add.NotifyCurrentCellDirty(true); 

     } 

     private void dm_dgview_add_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) 
     { 
      DataGridViewComboBoxCell cell = dm_dgview_add.CurrentCell as DataGridViewComboBoxCell; 

      if (cell != null && e.ColumnIndex == dm_dgview_add.Columns[1].Index) 
      { 
       if (!cell.Items.Contains(e.FormattedValue) && e.FormattedValue != null) 
       { 
        cell.Items.Add(e.FormattedValue); 
       } 
      } 
     } 

助けてください、私は非常にこれに感謝!

答えて

0

セルの検証イベントでcell.Items.SelectedItem = e.FormattedValueを設定する必要がありますか?

関連する問題