The My.Settings feature in Visual Basic 2005 is a great way to store form
settings like the forms location so the user gets the form at the same place as
he/she closed it last time. Adding it is real simple. Just go to
ApplicationSettings in the property sheet, expand it, open the combo after
location, choose new and type a name like “FormLocation”. Simple as that and you
are done.
However there are some problems :-(
The property name must be unique, Give two separate forms the same name and both
will be shown at exactly the same position. Makes it kind of hard to view the
info on both :-(
Adding the ApplicationSettings to a base form class means that all derived forms
use the same property name.
However there is an easy way around it. By using the My.Settins.SettingsKey you
can group related entries together. Adding the following code to you base form
class will ensure that all form classes keep their own distinct location:
Public
Class BaseForm
Private _setting
As New
My.MySettings()
Private
Sub BaseForm_FormClosed( _
ByVal sender
As Object, _
ByVal e
As System.Windows.Forms.FormClosedEventArgs) _
Handles
Me.FormClosed
_setting.Save()
End
Sub
Private
Sub BaseForm_Load( _
ByVal sender
As System.Object, _
ByVal e
As System.EventArgs) _
Handles
MyBase.Load
_setting.SettingsKey = Me.GetType().FullName
DataBindings.Add(New
Binding("Location", _
_setting, _
"FormLocation",
_
True, _
DataSourceUpdateMode.OnPropertyChanged))
End Sub
End
Class