Добавление всплывающей подсказки к OvalShape в C # - PullRequest
0 голосов
/ 14 января 2011

Я пытаюсь добавить всплывающую подсказку к OvalShape (Microsoft.VisualBasic.PowerPacks.OvalShape).Поскольку это не Control, я не могу использовать простой метод SetToolTip() в классе ToolTip.Как я могу показать ToolTip на OvalShape?Мне не обязательно использовать класс ToolTip, если у кого-то есть идеи получше.Я также хотел бы сохранить OvalShape, если только у кого-то нет лучшего решения, которое может дать мне наследство от Control при сохранении хорошей круглой формы.

1 Ответ

3 голосов
/ 14 января 2011

Вам нужно воспользоваться событием MouseHover, которое вы можете получить из-под контроля.Это работало достаточно хорошо:

    bool hoverSeen = false;

    private void ovalShape1_MouseHover(object sender, EventArgs e) {
        if (!hoverSeen) {
            hoverSeen = true;
            // Todo, fix position
            Point pos = ovalShape1.Parent.PointToClient(Cursor.Position);
            toolTip1.Show("On oval", ovalShape1.Parent, pos);
        }
    }

    private void ovalShape1_MouseLeave(object sender, EventArgs e) {
        if (hoverSeen) toolTip1.Hide(ovalShape1.Parent);
        hoverSeen = false;
    }
...