简体   繁体   English

如何在checkedlistbox中止取消选中项目?

[英]How to abort unchecking item at checkedlistbox?

I have a method:我有一个方法:

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
                    }
                };
            }\

The problem is taht one column which header text "Show" shouldn't be uncheckable, so I want something like aborting unchecking for this item.问题在于 header 文本“显示”不应该是不可选中的一列,所以我想要类似中止取消选中此项的内容。

Maybe some event on checkedlistbox?也许checklistbox上有一些事件?

Best regards此致

Make the column read-only and then you needn't fiddle with preventing it from being changed.将列设为只读,然后您就不必摆弄防止它被更改。

Otherwise, subscribe to the CellEndEdit event and set e.Cancel = true .否则,订阅CellEndEdit事件并设置e.Cancel = true

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM