Как я могу получить TabPage из TabControl на основе точки?

Конечно, это должно быть легко; Мне просто не повезло с этим.

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

Я старался GetChildAtPoint, но это, кажется, всегда возвращает первую вкладку (если я не использую это неправильно).

2 ответа

Решение

Попробуй это:

TabPage GetPageByPoint(TabControl tabControl, Point point)
{
    for (int i = 0; i < tabControl.TabPages.Count; i++)
    {
        TabPage page = tabControl.TabPages[i];
        if (tabControl.GetTabRect(i).Contains(point))
            return page;
    }
    return null;
}

Удачи!

Вы можете попробовать использовать перегрузку GetChildAtPoint с GetChildAtPointSkip - эта ошибка Connect предполагает, что она может работать.

Другие вопросы по тегам