Показывать всплывающую подсказку, когда выбрана ячейка таблицы данных - PullRequest
3 голосов
/ 20 июля 2011

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

Ответы [ 3 ]

7 голосов
/ 20 июля 2011

Как вы заметили, вы не сможете использовать встроенную подсказку DataGridView.Фактически вам необходимо отключить его, поэтому установите для свойства ShowCellToolTips объекта DataGridView значение false (по умолчанию true).

Вы можете использовать событие CellEnter DataGridView с обычной подсказкой Winform ToolTip.управление отображением подсказок при изменении фокуса от ячейки к ячейке независимо от того, было ли это сделано с помощью мыши или клавиш со стрелками.

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) {
    var cell = dataGridView1.CurrentCell;
    var cellDisplayRect = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false);
    toolTip1.Show(string.Format("this is cell {0},{1}", e.ColumnIndex, e.RowIndex), 
                  dataGridView1,
                  cellDisplayRect.X + cell.Size.Width / 2,
                  cellDisplayRect.Y + cell.Size.Height / 2,
                  2000);
    dataGridView1.ShowCellToolTips = false;
}

Обратите внимание, что я добавил смещение к расположению подсказки на основевысота и ширина ячейки.Я сделал это, чтобы всплывающая подсказка не отображалась прямо над ячейкой;Вы можете настроить этот параметр.

0 голосов
/ 24 января 2014

Jay Riggs'answer - это тот, который я использовал.Кроме того, поскольку мне нужно было гораздо более длительное время, мне пришлось добавить это событие, чтобы всплывающая подсказка исчезла.

private void dataGridView_MouseLeave(object sender, EventArgs e)
{
    toolTip1.Hide(this);
}
0 голосов
/ 20 июля 2011
        dgv.CurrentCellChanged += new EventHandler(dgv_CurrentCellChanged);
    }

    void dgv_CurrentCellChanged(object sender, EventArgs e)
    {
        // Find cell and show tooltip.
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...