2011-03-07 11 views
7

Mam kontrolkę tabulacji i trzeba usunąć prostokąt kropkowana wokół wybranej zakładki.Czy mogę usunąć prostokąt z przerywaną ostrością na kartach TabControl?

Ustawiłem właściwość TabStop TabControl na wartość false. Jednak jeśli kliknę kartę i naciśnij klawisz Tab, kropkowany prostokąt pojawi się wokół nazwy tabulatora. , Nadal pojawia

Próbowałem tworzyć własne TabControl i próbowałem to

class MyTabControl : TabControl 
{ 
     public MyTabControl() 
     { 
      TabStop = false; 
      DrawMode = TabDrawMode.OwnerDrawFixed; 
      DrawItem += new DrawItemEventHandler(DoMoreTabControl_DrawItem); 
      Invalidate(); 
     } 
} 

jednak przerywana prostokąt.

Próbowałem również przesłonić metodę MyTabControl.OnPaint(), ale to nie pomaga.

Czy jest jakiś sposób, aby to osiągnąć?

+0

Dlaczego chcesz to ukryć? Jakiś nieodparty powód? – Pradeep

Odpowiedz

1

Tak, zdarzenie DrawItem. Nie opublikowałeś tego, nie można się domyślić, co jest z nim nie tak. Po prostu upewnij się, że nie wywołujesz numeru e.DrawFocusRectangle(), który prawdopodobnie pojawi się, gdy skopiujesz kod przykładowy MSDN. Wystarczy usunąć oświadczenie jest wystarczające. Rozważ użycie innego koloru tła lub stylu czcionki jako alternatywy, więc podpowiedź dotycząca ostrości nie zostanie całkowicie utracona.

+2

Dobry przykład aplikacji, która to robi: Visual Studio i Microsoft SQL Server Management Studio. Również przeglądarki internetowe. Na kartach nie ma prostokąta skupienia. Ctrl + tab pojawia się w akceptowany sposób nawigacji po kartach z klawiatury. –

0

ustawić ostrość na karcie zamiast nagłówka (tak)

private void tabControl1_Click(object sender, EventArgs e) 
{ 
    (sender as TabControl).SelectedTab.Focus(); 
} 

Zobaczysz kropkowany prostokąt o milisekundy, tak szybko, jak wyżej zdarzenie zostanie wykonany zniknie.

Ponadto, aby usunąć kropkowany prostokąt o domyślnym wybrane zakładki na obciążenia

private void tabControl1_Enter(object sender, EventArgs e) 
{ 
    (sender as TabControl).SelectedTab.Focus(); 
} 

Zarówno ten zmienia pracował dla mnie! mam nadzieję, że to pomoże komuś.

Powiązane problemy