Add a new Project Setting (User,String) and name it 'Theme' - this will remember the user's last theme when opening the form.
Insert a DefaultLookAndFeel and a DX ListBox on your form and paste this code in the Form's Sub New() event:
DevExpress.UserSkins.BonusSkins.Register()
DevExpress.UserSkins.OfficeSkins.Register()
DevExpress.Skins.SkinManager.Default.RegisterAssembly(GetType(DevExpress.UserSkins.Office2007Bonus).Assembly)
DevExpress.Skins.SkinManager.EnableFormSkinsIfNotVista()
Dim skins As DevExpress.Skins.SkinContainerCollection = DevExpress.Skins.SkinManager.Default.Skins
For Each skin As DevExpress.Skins.SkinContainer In skins
Me.lboTheme.Items.Add(skin.SkinName)
Next
For Each s As String In [Enum].GetNames(GetType(DevExpress.LookAndFeel.LookAndFeelStyle))
If s <> "Skin" Then Me.lboTheme.Items.Insert(0, s)
Next
Me.lboTheme.Items.Add("Windows XP Theme")
Me.lboTheme.SelectionMode = SelectionMode.One
Me.lboTheme.SelectedValue = My.Settings.Theme
AddHandler Me.lboTheme.SelectedValueChanged, AddressOf lboTheme_SelectedValueChanged
lboTheme_SelectedValueChanged(Me, Nothing)
..then add this rountine elsewhere in the form class:
Private Sub lboTheme_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs)
If Me.lboTheme.SelectedItem.ToString = "Windows XP Theme" Then
Me.DefaultLookAndFeel1.LookAndFeel.UseWindowsXPTheme = True
ElseIf [Enum].IsDefined(GetType(DevExpress.LookAndFeel.LookAndFeelStyle), Me.lboTheme.SelectedItem.ToString) Then
Me.DefaultLookAndFeel1.LookAndFeel.UseWindowsXPTheme = False
Me.DefaultLookAndFeel1.LookAndFeel.Style = [Enum].Parse(GetType(DevExpress.LookAndFeel.LookAndFeelStyle), Me.lboTheme.SelectedItem.ToString)
Else
Me.DefaultLookAndFeel1.LookAndFeel.UseWindowsXPTheme = False
Me.DefaultLookAndFeel1.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Skin
Me.DefaultLookAndFeel1.LookAndFeel.SkinName = Me.lboTheme.SelectedItem.ToString
End If
My.Settings.Theme = Me.lboTheme.SelectedItem.ToString
End Sub
Here is a screen clipping
