C# TabControl przejście do TabPage

0

Witam! Mam taki oto kod:

             if (e.Button == MouseButtons.Right)//przechwycenie prawego klawisza myszy
            {
                MenuItem[] m_items = new MenuItem[]//utworzenie menu kontekstowego
                { 
                    new MenuItem("cośtam"),//pozycje menu
                    [...]
                    new MenuItem("n_cośtam") };

                ContextMenu menu = new ContextMenu(m_items);//akcje menu
                menu.MenuItems[0].Click += new EventHandler(eventjakiś);
                [...]
                menu.MenuItems[n].Click += new EventHandler(n_eventjakiś);

                menu.Show(MatrixPreview, new System.Drawing.Point(e.X, e.Y));//wyświetlenie menu kontekstowego
            }

Jak widać kod przechwytuje prawy przycisk myszy i rozwija menu kontekstowe. Problem polega na tym, że przed rozwinięciem tego menu chciałbym przejść do danego Taba, jeśli kliknąłem na Tab, który nie jest aktywny. Kombinowałem z przechwyceniem SelectedIndex, ale to nic nie dało. Ktoś ma jakiś pomysł?

0

Problem polega na tym, że nie wiem na jakim Tabie użytkownik kliknął. Gdybym wiedział, nie było by problemu. Może źle opisałem sytuację:

Mam TabControl z określoną ilością TabPage. Chcę wywołując menu kontekstowe przechodzić do Taba, nad którym kliknięto prawym przyciskiem myszy. Nie wiem skąd wziąć parametr mówiący nad którym Tabem kliknięto.

2

A to przepraszam, źle zrozumiałem. Nie wiem od ręki, nigdy nie było mi to potrzebne, nie mam teraz możliwości sprawdzić. W najgorszym wypadku będziesz musiał to policzyć (choć myślę, że jest prostsza metoda).

Edit: znalazłem coś takiego, i działa niby, ale nie wiem, czy o to Ci chodzi i czy to najprostszy sposób:

            if (e.Button == MouseButtons.Right)
            {
                for (int i = 0; i < tabControl1.TabCount; i++)
                {
                    Rectangle r = tabControl1.GetTabRect(i);
                    if (r.Contains(e.Location))
                    {
                        // tu twoje menu 
                        tabControl1.SelectedIndex = i; 
                    }
                }
            }
0

O to chodziło. Wielkie dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1