2 Проблемы с включением редактируемого DataGridViewComboBox (без привязки к данным) в c # - PullRequest
2 голосов
/ 27 января 2012

Я очень новичок в C #, и я действительно застрял.Я постараюсь быть кратким.

У меня есть некоторый ComboBox (в том же столбце) в DataGridView, и я хочу, чтобы пользователи могли печатать в ComboBox.Я получил его на половину работы ...

* Проблема 1: Когда я набираю его, хотя то, что я набрал, добавляется в список выбора в раскрывающемся списке, ComboBox становится пустым, и у меня естьчтобы повторно выбрать значение, которое я только что ввел.Как сделать так, чтобы введенное мной значение оставалось в качестве выделения и не оставлялось пустым.

* Проблема 2: Есть ли способ сделать определенный ComboBox недоступным для редактирования в том же столбце?Мой код, кажется, делает весь мой пользователь ComboBox редактируемым.Как я могу сделать некоторые исключения 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);
                }
            }
        }

Пожалуйста, помогите, яочень ценю это!

1 Ответ

0 голосов
/ 02 февраля 2012

Вам нужно установить cell.Items.SelectedItem = e.FormattedValue в событии проверки ячейки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...