Использование tooltip в DataGridViewComboBoxCell С#
Столкнулся с проблемой отображения всплывающих подсказок при открывании списка вверх при недостаточном месте на экране. Отрисовываю в событии DrawItem:
void cb_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index != -1)
{
//...
Font font = cb.Font;
e.DrawBackground();
using (SolidBrush br = new SolidBrush(e.ForeColor))
e.Graphics.DrawString(cbText, font, br, e.Bounds);
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected &&
(e.State & DrawItemState.Focus) != DrawItemState.Focus)
this.toolTip1.Show(toolTipText, cb, e.Bounds.Right, e.Bounds.Bottom);
e.DrawFocusRectangle();
}
}
Всё отлично, пока список открывается вниз. Если список открыть вверх, то tooltip отображается на местах, как будто список открыт вниз. Соответственно надо решить две задачи - определить направление открытия и рассчитать смещение отображения. Для ComboBox можно использовать метод: взять высоту экрана и отнять высоту списка ComboBox. Но, DataGridViewComboBoxCell не имеет свойства DropDownHeight и как рассчитать высоту мне не понятно. если я представлю DataGridViewComboBoxCell as ComboBox, то DropDownHeight предостовляет недостоверные значения.