Como faço para desativar estilos visuais para apenas um controle, e não seus filhos?
-
08-07-2019 - |
Pergunta
Eu tenho um TabControl dentro de um TabControl. Eu quero que o TabControl exterior para mostrar suas guias do lado esquerdo. No entanto, com estilos visuais ativados, TabControls alinhado à esquerda não são exibidos corretamente. Posso desativar estilos visuais para apenas o TabControl exterior?
Estou ciente das substituições TabControl de terceiros - não é isso que eu estou atrás
.Solução
Adicione uma nova classe ao seu projeto e cole o código mostrado abaixo. Construir. Largar o novo controle a partir do topo da caixa de ferramentas para seu formulário. estilos visuais dos controles filho são preservados.
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);
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow