2010-12-26 15 views
0

Ich bin derzeit mit drei Zellen Datagridview verwendet wird, und die erste Zelle ist DataGridViewComboBoxColumn Objekt, und ich möchte, um sicherzustellen, wann immer ich einen neuen Artikel in wähle DataGridViewComboBoxColumn Objekt andere Zellen von Datagridview leer bekommen . Es spielt keine Rolle, ob ich den gleichen Gegenstand noch einmal auswähle.Verwirrung in Datagridview Combobox

Könnte mir bitte jemand sagen, wie soll ich sicherstellen, dass ich ein neues Element in DataGridViewComboBoxColumn Objekt ausgewählt habe? Welche Eigenschaft oder Methode sollte ich für diesen Ansatz verwenden?

Antwort

0

Sie können eine globale List<int> gridComboSelections deklarieren, und wenn Sie Ihre DataSource an Ihr Raster binden, können Sie diese Liste mit den SelectedValues ​​der Comboboxen füllen. Wenn einer der Werte der Combobox geändert wird, suchen Sie die Position der Combobox und prüfen Sie, ob sie mit gridComboSelections[i] übereinstimmt. Wenn es die gleiche Endoperation ist, wenn Sie nicht tun, was Sie damit wollen. Wenn der Wert geändert wird, denken Sie daran, den entsprechenden Wert in Ihrer Liste zu ändern.

0

Sie können folgenden Code beziehen, der das gleiche tut.

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 
     { 
      ComboBox combo = e.Control as ComboBox; 
      if (combo != null) 
      { 
       combo.SelectionChangeCommitted += new EventHandler(combo_SelectionChangeCommitted); 
      } 
     } 

     void combo_SelectionChangeCommitted(object sender, EventArgs e) 
     { 
      DataGridViewComboBoxEditingControl combo = sender as DataGridViewComboBoxEditingControl; 
      if (combo != null) 
      { 
       for (int columnIndex = 0; columnIndex < dataGridView1.ColumnCount; columnIndex++) 
       { 
        if (columnIndex != combo.EditingControlDataGridView.CurrentCell.ColumnIndex) 
        { 
         dataGridView1[columnIndex, combo.EditingControlRowIndex].Value = null; 
        } 
       } 
      } 
     } 
Verwandte Themen