Добавить полосу прокрутки в DataGridViewTextBoxColumn - PullRequest
0 голосов
/ 23 октября 2018

Интересно, что в Интернете нет сообщений для этого вопроса. Как добавить полосу прокрутки для работы с DataGridViewTextBoxColumn после того, как событие MyGrid_EditingControlShowing отображает это текстовое поле на сетке.

Я добавил ниже событие

private void MyGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if ((!(e.Control is TextBox)) || e.CellStyle.WrapMode == DataGridViewTriState.True) return;
            var textBox = e.Control as TextBox;
            textBox.ScrollBars = ScrollBars.Both;
}

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

заранее спасибо

1 Ответ

0 голосов
/ 23 октября 2018

Это:

!(e.Control is TextBox))

никогда не будет истинным.

Вы можете попробовать это вместо этого:

if (MyGrid.CurrentCell.EditType != typeof(DataGridViewTextBoxEditingControl))
{
    return;
}

Или это:

DataGridViewTextBoxEditingControl tb = e.Control as DataGridViewTextBoxEditingControl;

if (tb == null)
{
    return;
}

Обратите внимание, что ScrollBars будет отображаться только тогда, когда Cell находится в режиме редактирования! 'Ячейки' из DateGridView - это всего лишь виртуальные элементы управления или, другими словами, они просто пикселей , нарисованные на экране.У них нет модели событий и т. Д., Поэтому они не могут функционировать в интерактивном режиме.Только EditControl, который накладывается, является фактическим контролем.

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