Как отключить всплывающие подсказки для всего столбца .net DataGridView - PullRequest
0 голосов
/ 28 марта 2011

У меня есть таблица данных winform, которая содержит столбец кнопок.Я хотел бы отключить всплывающие подсказки только для этого столбца - всплывающие подсказки должны отображаться для других столбцов.Я считаю, что всплывающие подсказки мешают нажатию кнопки - когда вы нажимаете на всплывающую подсказку, событие нажатия не распространяется вниз до кнопки.Очень раздражает.

Я пытался обработать событие CellTooltipNeeded и вернуть пустую или пустую строку для этого столбца, но затем всплывающая подсказка просто возвращается к отображению текста кнопки во всплывающей подсказке.Я также попытался установить для Column.ToolTipText пустую строку, и это правильно скрывает всплывающую подсказку заголовка столбца, но всплывающая подсказка всех остальных строк по-прежнему отображается.

Какой лучший способ отключить всплывающие подсказки для всегоколонка?

Спасибо, Джимми

Ответы [ 3 ]

4 голосов
/ 17 мая 2016

Я искал ответ на этот вопрос, но на всех форумах говорилось, что это невозможно. Однако я нашел решение.

В вашем DataGridView обработайте событие CellMouseEnter. В обработчике событий DataGridViewCellEventArgs содержит свойство ColumnIndex. Используйте это, чтобы установить свойство DataGridView.ShowCellToolTips. Вот так (извините, пожалуйста, VB):

Private Sub MyDataGridView_CellMouseEnter(sender As Object, e as DataGridViewCellEventArgs) Handles DataGridView.CellMouseEnter
    MyDataGridView.ShowCellToolTips = e.ColumnIndex = <the Column # I want to show Tooltips>
End Sub

И, очевидно, очень просто включить или выключить это на уровне ячейки, так как DataGridViewCellEventArgs также содержит свойство RowIndex.

Мне жаль, что я нашел ответ через пять лет после того, как он был опубликован!

1 голос
/ 28 марта 2011

Устанавливает ли это пространство в нужное место?В противном случае, попробуйте точку или что-то действительно крошечное.

0 голосов
/ 28 мая 2016

Основано на ответе Марка К . Вот статический метод, который можно использовать для скрытия всплывающих подсказок для столбцов кнопок и их отображения для других столбцов (включая заголовки столбцов и строк).

    public static void CellMouseEnterHandlerToHideTooltipsForButtonColumns(object sender, DataGridViewCellEventArgs e)
    {
        try
        {
            DataGridView grid = sender as DataGridView;
            grid.ShowCellToolTips = (e.RowIndex < 0) || (e.ColumnIndex < 0) || !(grid.Columns[e.ColumnIndex] is DataGridViewButtonColumn);
        }
        catch (Exception)
        { }
    }
...