10 Stimmen

Wie kann ich visuelle Stile nur für ein Steuerelement und nicht für seine untergeordneten Elemente deaktivieren?

Ich habe ein TabControl innerhalb eines TabControls. Ich möchte, dass das äußere TabControl seine Registerkarten auf der linken Seite anzeigt. Wenn die visuellen Stile aktiviert sind, werden links ausgerichtete TabControls jedoch nicht richtig angezeigt. Kann ich Visual Styles nur für das äußere TabControl deaktivieren?

Ich bin mir der TabControl-Ersatzprogramme von Drittanbietern bewusst - das ist nicht das, was ich suche.

25voto

Hans Passant Punkte 894572

Fügen Sie eine neue Klasse zu Ihrem Projekt hinzu und fügen Sie den unten stehenden Code ein. Erstellen. Ziehen Sie das neue Steuerelement vom oberen Rand der Toolbox auf Ihr Formular. Die visuellen Stile der untergeordneten Steuerelemente bleiben erhalten.

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

public class FixedTabControl : TabControl {
  [DllImportAttribute("uxtheme.dll")]
  private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);

  protected override void OnHandleCreated(EventArgs e) {
    SetWindowTheme(this.Handle, "", "");
    base.OnHandleCreated(e);
  }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X