ABL - The Problem Solver - .Net FAQ
 

Home
Mission
News
Blog
Tools
FAQ
Publications
Downloads
Contact
Contents

 

Frequently asked questions

.NET FAQ Visual FoxPro FAQ

 


My.Settings and form inheritance

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


 

Send mail to webmaster@TheProblemSolver.nl with questions or comments about this web site.
Copyright © 1995 - 2007 ABL - The Problem Solver
Last modified: 10/21/06
WF
RSS 2.0