Toon posts:

[vb.net]Automatisch xp style setten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een functie geschreven die automatisch de xp style goed zet voor de betreffende controls (de flatstyle) deze functie is makkelijk aan te passen voor b.v. standaard dingen van een form aan te passen (neem bijvoorbeeld de FormBorderStyle). Geen Imports zijn benodigd, alleen een manifest bestand, dat kan worden hier http://www.huuf.net/XP%20Style.rar gevonden. Hier zit ook een programma bij dat ik heb geschreven voor het manifest bestand te koppelen aan je exe. Indien je het programma onder windows 98 wilt draaien moet je unicode.dll erbij plaatsen.

Waarom ik dit toe voeg, omdat ik vaak te vragen krijg hoe ik het doe met mijn programma's
LET OP, Alleen bij het vb .net gebruiken, manifest bestand kan ook bij andere worden toegevoegd.

Het wordt aangeroepen met MaakXPStyle(Me) (in een form dan)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Public Sub MaakXPStyle(ByVal frmXP As Form)
        Try
            Dim XPctrl As Control
            For Each XPctrl In frmXP.Controls
                If XPctrl.GetType.ToString = "System.Windows.Forms.Label" Then
                    CType(XPctrl, Label).FlatStyle = FlatStyle.System
                ElseIf XPctrl.GetType.ToString = "System.Windows.Forms.Button" Then
                    If IsNothing(CType(XPctrl, Button).Image) Then CType(XPctrl, Button).FlatStyle = FlatStyle.System
                ElseIf XPctrl.GetType.ToString = "System.Windows.Forms.CheckBox" Then
                    CType(XPctrl, CheckBox).FlatStyle = FlatStyle.System
                ElseIf XPctrl.GetType.ToString = "System.Windows.Forms.GroupBox" Then
                    CType(XPctrl, GroupBox).FlatStyle = FlatStyle.System
                ElseIf XPctrl.GetType.ToString = "System.Windows.Forms.LinkLabel" Then
                    CType(XPctrl, LinkLabel).FlatStyle = FlatStyle.System
                ElseIf XPctrl.GetType.ToString = "System.Windows.Forms.RadioButton" Then
                    CType(XPctrl, RadioButton).FlatStyle = FlatStyle.System
                End If
            Next
    End Sub

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Wellicht een fieldinfo object opvragen voor 'FlatStyle' property, en dan kijken of deze null (Nothing is). Zo nee, dan value zetten met FlatStyle.System. Is universeler:

Visual Basic .NET:
1
2
3
4
5
6
For Each XPctrl In frmXP.Controls
    Dim pinfo As PropertyInfo = XPctrl.GetType().GetProperty("FlatStyle")
    If Not pinfo Is Nothing Then
        pinfo.SetValue(XPctrl, FlatStyle.System, Nothing)
    End If
Next


Verder heb je geen manifest file nodig, je kunt EnableVisualStyles op true zetten in het Application object. (daarna eerst doevents aanroepen). (.net 1.1)

[ Voor 3% gewijzigd door EfBe op 05-12-2004 20:43 ]

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Verwijderd

Topicstarter
Het nadeel van hetgene wat jij hebt gemaakt is dat sommige controls soms niet op flatstyle moet worden gezet en daarbij de xp style net opheft.

Maar gelukkig wordt in .net 2.0 alles auto xp style gemaakt

Ook voordelig daarvan is het terugbrengen van in runtime editen