2010-12-07 14 views
5

Ich habe ein Problem mit Tabcontrol. Wenn ich den DrawMode zu ownDrawFixed ändere, ändert sich der borderstyle der tabcontrol von "fixedsingle" zu "3dfixed", aber es gibt keine solche Eigenschaft von tabcontrol borderstyle. Die nächste Sache, die mit der Tabstopp-Funktion zu tun hat, ist das Erscheinungsbild, das sich nicht geändert hat.tabcontrol ownerdraw ändert den TabControl-Rahmenstil

alt text

Blick auf das Bild oben zu verstehen, was ich rede.

Gibt es eine Möglichkeit, die Farbe des Titels der Registerkarte ohne OwnerDraw zu ändern, so dass ich OwnerDraw nicht verwenden muss?

oder wie kann ich den borderstyle der tabcontrol beheben?

+0

OwnerDraw deaktiviert den visuellen Stilen Renderer. –

+0

Wie kann ich es in OwnerDraw aktivieren? – Ron

Antwort

3

Wenn Sie ein Steuerelement auf OwnerDraw setzen, sagen Sie ausdrücklich "Ich werde alle Zeichnungen für dieses Steuerelement verarbeiten". Dadurch wird das Rendern der visuellen Stile vollständig deaktiviert.

Um ein Steuerelement mit visuellen Stilen zu rendern, müssen Sie die Funktionen im System.Windows.Forms.VisualStyles-Namespace verwenden. Es erfordert ein gutes Stück Code, aber dann sagst du, dass du alles selbst behandeln willst. Ich würde mit den Beispielen für VisualStyleRenderer beginnen - Sie müssen es anrufen, VisualStyleElements zu übergeben übergeben.

Siehe auch diese Frage zu treeview Ownerdraw: VisualStyleRenderer and themes (WinForms)

+0

Ich habe diese Funktion, um die Grenze zu zeichnen, die ich möchte http://msdn.microsoft.com/en-us/library/system.windows.forms.visualstyles.visualstyleelement.tab.pane%28v=VS.90%29.aspx aber ich weiß nicht, wie man es benutzt. Wenn ich DrawVisualStyleElementTabPane1 (e) in die Paint-Funktion des Formulars einfüge, zeichnet es eine neue "Kontrolle". – Ron