2012-04-25 5 views
22

Utworzyłem formularz Windows za pomocą kontrolki Tab, ale ma on nagłówek. Chcę to ukryć. Nie jestem w stanie tego zrobić przy użyciu jakichkolwiek właściwości kontrolki Tab. Czy istnieje jakaś własność zdefiniowana do ukrywania nagłówka tabulatora dla Kontroli zakładek bez przechodzenia przez kod?Jak utworzyć formant zakładki bez nagłówka Tab w formularzu systemu Windows?

+0

Przypuszczam, że to możliwe, aby zmienić jego rozmiar do 1px, więc jest prawie niewidoczny. Spójrz na odpowiedź tutaj: http://stackoverflow.com/questions/9998672/winforms-how-to-show-hide-elements-in-designer/9998835#9998835. –

+0

Próbowałem zmienić rozmiar, ale nadal nie działa ... Czy jest jakiś inny sposób na rozwiązanie tego problemu? –

+0

Czy próbowałeś ustawić pozycję y na negatywną ... coś? – sventevit

Odpowiedz

3

Chcesz panele kart bez funkcji umożliwiającej użytkownikowi przełączanie się między nimi, więc przypuszczam, że chcesz utworzyć kilka osobnych zestawów kontrolek, które będą wyświetlane użytkownikowi po jednym na raz. Można to osiągnąć na kilka sposobów (można wybrać jedną z nich, jeśli okaże się to za właściwe w danym przypadku):

  • używać kilku Panel kontroli zamiast kilku zakładkach w TabControl, jednak trudno byłoby pracować w projektancie, ponieważ wszystkie elementy sterujące będą widoczne:
  • Zamiast rozdzielać części układu, należy użyć różnych Form s. Może być ok, ale możesz nie chcieć używać wielu s Form s, więc to zależy od konkretnego przypadku.

i wreszcie sugerowane rozwiązanie:

  • hermetyzacji każdego zestawu kontroli w UserControl. Pozwala to zachować każdy układ osobno, dzięki czemu można łatwo zaprojektować każdy z nich bez przeszkadzania innym kontrolom;). Kod obsługujący każdy z układów również byłby rozdzielony. Następnie po prostu przeciągnij te formanty w formularzu i użyj odpowiedniego ustawienia widoczności, aby pokazać to, co chcesz.

Jeśli żadna z tych sugestii nie zadziała, daj mi znać, więc będę mógł szukać innych możliwych rozwiązań.

+1

Dzięki za pomoc Lucas. Zorientowałem się, jak pozbyć się nagłówka Tab. Właśnie ustawiłem właściwości "ShowTabs" kontrolki Tab na wartość false i zadziałało. Dobrze używanie kontroli Panelu może zdecydowanie zadziałać. Dziękuję bardzo za pomoc. Dowiesz się, jeśli napotkam na jakąkolwiek inną trudność. –

+0

Nie widzę właściwości 'ShowTabs' w kontrolce' TabControl' ani w WinForm ani w WPF. Czy używasz czegoś innego? W każdym razie cieszę się, że znalazłeś rozwiązanie :). –

+0

Witam Lucas, używam prostej aplikacji do tworzenia okien. Tak, ma właściwość ShowTabs. Mogę załączyć zrzut ekranu, jeśli chcesz. Czy istnieje sposób, w jaki mogę dołączyć zrzut ekranu? –

66

Poniższy kod służy do ukrywania kart lub ustawiania tych właściwości w projekcie.

tabControl.Appearance = TabAppearance.FlatButtons; 
    tabControl.ItemSize = new Size(0, 1); 
    tabControl.SizeMode = TabSizeMode.Fixed; 
+3

Nawet to jest bardzo stare, ta odpowiedź zaoszczędziła mi wiele czasu! To powinno być zaakceptowane jako odpowiedź. – Caverna

+1

Idealnie! to świetne rozwiązanie. Dzięki. –

-1

To jest łatwiejsze, niż myślisz, po prostu przeciągnij górną część panelu, więc będzie poza formularzem.

+0

proszę o szczegóły? – manetsus

+0

rozciągasz okno bardziej górną myszą, aż wyjdzie z formy. – Phil

+1

To polecenie kontroluje kartę w górnej części okna, która przerywa wytyczne projektowe i nie daje miejsca na inny rodzaj układu sterowania. –

-1

Innym sposobem na osiągnięcie tego samego (lub podobnego) jest: Możesz usunąć karty z kolekcji TabControl.TabPages, a następnie dodać kartę, którą chcesz wyświetlić.

Podczas inicjalizacji formularza usuwam zakładki (w ten sposób do projektanta mogę łatwo nimi zarządzać) iw pewnym zdarzeniu sterującym (jako kliknięcie przycisku) pokazuję kartę, którą użytkownik musi zobaczyć.

Coś takiego:

// During form load: 
ctrTab.TabPages.Clear(); 

// ...... 

// During button click or some other event: 
if(rbSend.Checked) 
    ctrTab.TabPages.Add(pgSend); 
else 
    ctrTab.TabPages.Add(pgReceive); 

W ten sposób użytkownik może nadal zobaczyć kartę nagłówka ale tylko jako tytuł Grupa kontroluje, nie może zmienić/przełączyć aktualną kartę aktywną.

+0

Pytanie dotyczy pytania o to, jak całkowicie ukryć nagłówek karty, a nie jak uniemożliwić przejście na inną kartę. – binki

-1

Zastosowanie trybRysowania: OwnerDrawFixed ukryje tekst nagłówka tabpage DrawMode : OwnerDrawFixed

+0

Ale czy ukryje on cały nagłówek samej karty? – binki

+0

@binki Jego jedyny tekst nagłówka ukrytej karty wygląda tutaj https://photos.app.goo.gl/Ddray3XC8TrQrWx92 To jest pytanie, które należy zadać. Proszę mnie odesłać, jeśli to zadziała – monikapatel

+0

Pytanie, w jaki sposób ukryć całą kartę bez ukrywania zawartości karty. Nie tylko, jak uniknąć renderowania tekstu na karcie. Myślę, że nie rozumiesz pytania. – binki

Powiązane problemy