2009-03-16 5 views
1

Я использую событие CellToolTipTextNeededDataGridView, и подсказка отображается под мышью. Я могу получить объект ToolTip через отражение, но у меня нет никакого контроля над тем, где он позиционируется, так как я не тот, кто звонит Show(). Как переместить всплывающую подсказку?Как переместить всплывающую подсказку?

ответ

1

Я думаю, что короткий ответ: вы не можете, еще нет. Я, вероятно, подумал бы о создании пользовательского, например, «неизвестного (yahoo)».

1

Вам нужно будет самостоятельно управлять всплывающей подсказкой, используя методы «Показать» и «Скрыть», если вам нужен какой-либо контроль над тем, как и где он размещается с использованием рамки 2.0, если вы не хотите попасть в вызовы API окна.

К сожалению, похоже, что позиция всплывающей подсказки установлена ​​очень, очень рано в ее создании. Всплывающая подсказка имеет только 3 события для обработки, и мы не очень заинтересованы в Dispose в этом случае.

Событие Draw запускается после события Popup, и кажется, что позиция уже установлена, поскольку свойство Bounds в PopupEventArgs является только для чтения.

Вот ссылка на один из многих статей (во время этого поста) о создании пользовательского элемента управления: http://andrusdevelopment.blogspot.com/2007/10/implementing-custom-tooltip-in-c.html

И в документации MSDN об использовании всплывающей подсказки Показать и скрыть методы на самом деле довольно приличные: http://msdn.microsoft.com/en-us/library/44atyhsa(VS.80,printer).aspx

Извините, но это просто не похоже на быстрый и легкий ответ на этот вопрос. Надеюсь, кто-то докажет, что я ошибаюсь.

Скотт