0

私には方法があります:

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

問題は、ヘッダーテキスト「表示」のチェックを外してはならない1つの列であるため、このアイテムのチェックを外して中止するようなものが必要です。

たぶん、チェックリストボックスのイベントですか?

よろしくお願いします

4

1 に答える 1

0

を読み取り専用にすると、列が変更されないようにいじる必要がなくなります。

CellEndEditそれ以外の場合は、イベントにサブスクライブしてを設定しe.Cancel = trueます。

于 2011-06-04T19:11:21.763 に答える