Posts Tagged FromObject
Save Control Settings with vb.net
Posted by Kelly's Chronicles in .NET, C#, vb.net on June 27, 2014
What’s this you say? A new blog entry? If you haven’t completely deserted me …. well I don’t know what’s wrong with you! jk. But anyway here is the latest. I am working for a national hotel chain in Memphis, TN. I got married, moved to New Jersey and am we are now separated. Yes it is a long story and no I am not going to bore you with the details!
Before I go any further, I actually write very little in vb.net anymore. The language is awesome. It’s just that very few people want that skill set now and if you want to be employed you need to write in C#. It’s just the way it is. However in this particular task, I found vb.net to be the tool of choice here. The reason is there is no C# equivalent to VB’s implicit ‘once only’ variable initialization within loops. I am not sure why that is but that is the case here. This code snippet is ideal when you want to allow the end user to dictate how a given control is to look or operate. Yes in my example I am using an Infragistic control so if you copy and paste this do NOT email me complaining about broken references please! I hope you find the code useful and thank you for showing up!
Public Shared Sub SaveControl(ByVal StateName As String, ByVal ParamArray Controls As Control())
Dim section As String = “”
Dim appName As String = StringType.FromObject(Interaction.IIf((StringType.StrCmp(Application.ProductName, “”, False) = 0), “VSDesigner”, Application.ProductName))
Dim control As Control
For Each control In Controls
If (Not control.FindForm Is Nothing) Then
Dim form As Form
If (StringType.StrCmp((StateName & “”), “”, False) > 0) Then
section = String.Concat(New String() { control.FindForm.Name, “.”, control.Name, “.”, StateName })
Else
section = (control.FindForm.Name & “.” & control.Name)
End If
If TypeOf control Is Form Then
form = DirectCast(control, Form)
If (form.WindowState = FormWindowState.Normal) Then
Interaction.SaveSetting(appName, form.Name, “Top”, StringType.FromInteger(form.Top))
Interaction.SaveSetting(appName, form.Name, “Left”, StringType.FromInteger(form.Left))
Interaction.SaveSetting(appName, form.Name, “Height”, StringType.FromInteger(form.Height))
Interaction.SaveSetting(appName, form.Name, “Width”, StringType.FromInteger(form.Width))
End If
Interaction.SaveSetting(appName, form.Name, “WindowState”, StringType.FromInteger(CInt(form.WindowState)))
ElseIf TypeOf control Is Splitter Then
form = control.FindForm
Dim splitter As Splitter = DirectCast(control, Splitter)
Interaction.SaveSetting(appName, section, “SplitPosition”, StringType.FromInteger(splitter.SplitPosition))
ElseIf TypeOf control Is FilterListView Then
Dim view2 As FilterListView = DirectCast(control, FilterListView)
form = view2.FindForm
Interaction.SaveSetting(appName, section, “View”, StringType.FromInteger(CInt(view2.ListView.View)))
Dim header As ColumnHeader
For Each header In view2.ListView.Columns
Interaction.SaveSetting(appName, section, (“Column” & StringType.FromInteger(header.Index)), StringType.FromInteger(header.Width))
Next
Dim filter As FilterListViewFilter
For Each filter In view2.Filters
Dim tag As UserProfileSetting
If (filter.Tag Is Nothing) Then
tag = Context.User.Settings.NewItem
Dim setting2 As UserProfileSetting = tag
setting2.Type = UserProfileSettingTypeEnum.FilterListView
setting2.Name = section
setting2.Description = filter.Name
setting2.Value = filter.Filter
setting2 = Nothing
filter.Tag = tag
ElseIf filter.Deleted Then
tag = DirectCast(filter.Tag, UserProfileSetting)
If Context.User.Settings.Contains(tag) Then
Context.User.Settings.Remove(tag)
End If
Else
tag = DirectCast(filter.Tag, UserProfileSetting)
tag.Value = filter.Filter
End If
Next
Context.User.Settings.Save
ElseIf (TypeOf control Is ListView Or TypeOf control Is SortListView) Then
form = control.FindForm
Dim view As ListView = DirectCast(control, ListView)
Interaction.SaveSetting(appName, section, “View”, StringType.FromInteger(CInt(view.View)))
Dim header As ColumnHeader
For Each header In view.Columns
Interaction.SaveSetting(appName, section, (“Column” & StringType.FromInteger(header.Index)), StringType.FromInteger(header.Width))
Next
ElseIf TypeOf control Is TabControl Then
form = control.FindForm
Dim control2 As TabControl = DirectCast(control, TabControl)
Interaction.SaveSetting(appName, section, “View”, StringType.FromInteger(control2.SelectedIndex))
ElseIf TypeOf control Is TextBox Then
form = control.FindForm
Dim box3 As TextBox = DirectCast(control, TextBox)
Interaction.SaveSetting(appName, section, “Text”, box3.Text)
ElseIf TypeOf control Is ComboBox Then
form = control.FindForm
Dim box As ComboBox = DirectCast(control, ComboBox)
If (box.DropDownStyle = ComboBoxStyle.DropDown) Then
Interaction.SaveSetting(appName, section, “Text”, box.Text)
End If
Interaction.SaveSetting(appName, section, “SelectedIndex”, StringType.FromInteger(box.SelectedIndex))
ElseIf TypeOf control Is CheckBox Then
form = control.FindForm
Dim box2 As CheckBox = DirectCast(control, CheckBox)
Interaction.SaveSetting(appName, section, “Checked”, StringType.FromBoolean(box2.Checked))
ElseIf TypeOf control Is DataGrid Then
form = control.FindForm
Dim grid As DataGrid = DirectCast(control, DataGrid)
Dim num As Integer = 0
Dim style As DataGridTableStyle
For Each style In grid.TableStyles
Dim num2 As Integer = 0
Dim style2 As DataGridColumnStyle
For Each style2 In style.GridColumnStyles
Interaction.SaveSetting(appName, (section & StringType.FromInteger(num) & “.” & StringType.FromInteger(num2)), “Width”, StringType.FromInteger(style2.Width))
num2 += 1
Next
num += 1
Next
ElseIf TypeOf control Is KeyedDropDown Then
form = control.FindForm
Dim down As KeyedDropDown = DirectCast(control, KeyedDropDown)
If (down.DropDownStyle = ComboBoxStyle.DropDown) Then
Interaction.SaveSetting(appName, section, “Text”, down.Text)
End If
Interaction.SaveSetting(appName, section, “SelectedIndex”, StringType.FromInteger(down.SelectedIndex))
ElseIf TypeOf control Is UltraGrid Then
Dim grid2 As UltraGrid = DirectCast(control, UltraGrid)
Dim enumerator2 As BandEnumerator = grid2.DisplayLayout.Bands.GetEnumerator
Do While enumerator2.MoveNext
Dim current As UltraGridBand = enumerator2.Current
Dim enumerator As ColumnEnumerator = current.Columns.GetEnumerator
Do While enumerator.MoveNext
Dim column As UltraGridColumn = enumerator.Current
Interaction.SaveSetting(appName, section, (“Hidden.” & StringType.FromInteger(current.Index) & “.” & column.Key), StringType.FromBoolean(column.Hidden))
Interaction.SaveSetting(appName, section, (“Width.” & StringType.FromInteger(current.Index) & “.” & column.Key), StringType.FromInteger(column.Width))
Loop
Loop
End If
End If
Next
End Sub
Application, appName, BandEnumerator, Bands, c#, CheckBox, CInt, column, ColumnEnumerator, ColumnHeader, columns, ComboBox, ComboBoxStyle, Concat, Contains, Context, Control, Controls, Current, DataGrid, DataGridColumnStyle, DataGridTableStyle, Description, DirectCast, DisplayLayout, DropDown, DropDownStyle, Else, ElseIf, enumerator, example, False, Filter, FilterListView, FilterListViewFilter, Filters, FindForm, Form, FormWindowState, FromBoolean, FromInteger, FromObject, GetEnumerator, Grid, GridColumnStyles, haven, header, Hidden, hotel, index, Infragistics, Integer, Interaction, KeyedDropDown, Left, ListView, Loop, Memphis, MoveNext, Name, New Jersey, NewItem, Normal, ParamArray, ProductName, Public, references, Remove, Save, SaveControl, SelectedIndex, Settings, skill, snippet, SortListView, SplitPosition, Splitter, StateName, StrCmp, StringType, TabControl, TableStyles, task, Text, TextBox, tool, Type, TypeOf, UltraGrid, UltraGridBand, UltraGridColumn, user, UserProfileSettingTypeEnum, Value, vb.net, View, VSDesigner, Width, WindowState
Archives
- April 2018
- January 2018
- December 2017
- June 2017
- May 2017
- May 2016
- April 2016
- September 2015
- July 2014
- June 2014
- November 2012
- October 2012
- June 2012
- May 2012
- April 2012
- January 2012
- September 2011
- August 2011
- July 2011
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- August 2008
- July 2008
- June 2008
- May 2008
Recent Comments