Можно ли сделать комбобокс не видимым в определенной строке в виде сетки? - PullRequest
0 голосов
/ 24 августа 2010

Мне было интересно, возможно ли сделать один comboBox невидимым или отключенным только для этой определенной строки?

сейчас у меня есть что-то вроде

private void gvAirSegment_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex+1 == gvAirSegment.Columns["RemarkLine"].Index)
        {
            if (!gvAirSegment.CurrentCell.Selected)
            {
                gvAirSegment.Columns[2].Visible = true;
            }
            else
            {
                gvAirSegment.Columns[2].Visible = false;
            }
        }
    }

, который при нажатии на флажок скрывает весь столбец, но мне бы хотелось, чтобы только этот выпадающий список не был виден / отключен.

Если бы я мог получить элемент управления, который был бы лучшим, если бы я мог превратить его в GridViewComboBox в элемент управления comboBox

Спасибо

Ответы [ 2 ]

1 голос
/ 24 августа 2010

Поскольку поле со списком привязано к типу ячейки, вы не сможете скрыть ее, не скрывая всю ячейку, если я понимаю ваш вопрос. Однако вы можете установить элемент управления только для чтения.

gvAirSegment.Rows[e.RowIndex].Cells[2].ReadOnly = true;
1 голос
/ 24 августа 2010

Вы можете назначить новый экземпляр базового класса DataGridViewCell соответствующему столбцу и строке для любой ячейки, которую вы хотите скрыть от пользователя:

gvAirSegment.Rows[row].Cells[col] = new DataGridViewCell();

Не забудьте назначить Value, так как перезапись ячейки уничтожит сохраненное значение.

Этот метод, вероятно, не будет работать, если DataGridView привязан к источнику данных или работает в виртуальном режиме.

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