Получение щелчков мышью в области рядом с заголовками TabPage - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь обработать MouseClicks в пользовательском TabControl.Если пользователь щелкает где-нибудь в области над TabPage, мне нужно, по крайней мере, обработать MouseDown и MouseUp.Очевидно, что это работает, нажав на вкладку.Но, похоже, рядом с вкладками есть «мертвая» область, которая не вызывает событие MouseDown.

enter image description here

MouseMove () - этообжиг.Просто ни одно из других событий Mouse / Click.Я добавил режим выбора из нескольких вкладок в TabControl и хочу, чтобы они могли нажимать на отдельную вкладку или за ее пределами, чтобы отменить выбор всех «выбранных» вкладок.Нужна помощь в поиске самого простого решения.

Если вам нужна дополнительная информация или разъяснения, пожалуйста, сообщите.

РЕДАКТИРОВАТЬ: Я смог воспользоваться ответом от LarsTech,Большое спасибо.

Под моим контролем я добавил:

    protected override void OnHandleCreated(EventArgs e)
    {
        base.OnHandleCreated(e);

        Parent.MouseDown += testMousedown;
    }

    private void testMousedown(object sender, MouseEventArgs e)
    {
        if (Bounds.Contains(e.Location))
        {
            MessageBox.Show("tab space clicked");
        }
    }

1 Ответ

0 голосов
/ 18 февраля 2019

Проверьте событие MouseDown контейнера:

protected override void OnMouseDown(MouseEventArgs e) {
  base.OnMouseDown(e);

  if (tabControl1.Bounds.Contains(e.Location)) {
    MessageBox.Show("tab space clicked");
  }
}

Если TabControl находится на панели, вам придется использовать событие MouseDown этой панели.

...