2011-06-04 80 views
0

我有一個方法:如何取消在checkedlistbox取消選中項目?

foreach (DataGridViewColumn column in dgvGeoObjectsFirstView.Columns) 
      { 
       geoObjectsColumnsCheckedListBoxFirstView.Items.Add(column.HeaderText, column.Visible); 
       geoObjectsColumnsCheckedListBoxFirstView.ItemCheck += (ss, ee) => 
       { 
        if (geoObjectsColumnsCheckedListBoxFirstView.SelectedItem != "Show") 
        { 
         if (geoObjectsColumnsCheckedListBoxFirstView.SelectedItem != null) 
         { 
          var selectedItem = geoObjectsColumnsCheckedListBoxFirstView.SelectedItem.ToString(); 

          foreach (DataGridViewColumn column2 in dgvGeoObjectsFirstView.Columns) 
          { 
           if (column2.HeaderText == selectedItem.ToString()) 
           { 
            column2.Visible = ee.NewValue == CheckState.Checked; 
           } 
          } 
          int currentDisplayIndex = 0; 

          foreach (DataGridViewColumn dataGridViewColumn in dgvGeoObjectsFirstView.Columns) 
          { 
           if (dataGridViewColumn.HeaderText == selectedItem) 
           { 
            currentDisplayIndex = dataGridViewColumn.Index; 
           } 
          } 



          int futureDisplayIndex = geoObjectsColumnsCheckedListBoxFirstView.SelectedIndex; 

          PassColumnsInFirstView(futureDisplayIndex, currentDisplayIndex); 
         } 
        } 
        else 
        { 
     //What can I do here to have item checked 
        } 
       }; 
      }\ 

問題是taht一列,其標題文本「顯示」不應該uncheckable,所以我想是這樣中止取消選中此項目。

可能在checkedlistbox上發生了一些事件?

問候

回答

0

使列read-only,然後你不必與防止它被改變撥弄。

否則,訂閱CellEndEdit事件並設置e.Cancel = true

+0

好主意,但不是我的公司的設計師:/必須像我寫的一樣。但thx :) – user278618 2011-06-04 19:13:28

+1

@ user278618:某些約束如不能編輯某些東西,可以將問題作爲信息提供給不熟悉它們的其他人。 – Patrick 2011-06-04 19:18:22

相關問題