Skip to main content
Email Password   helpLost your password?

Introduction

A new feature of .NET 2.0 and Visual Studio 2005 is the ability to save a user's application settings in a user.config file that is saved in the user's desktop profile.

Background

Until .NET 2.0, it was difficult to save a user's settings for an application. User settings had to be saved in the registry, in an .ini file, or in a custom text file. Now, it is possible to save settings for a user's application that will even move with them in a roaming desktop profile.

To view the non-roaming settings, open the user.config file located at %USERPROFILE%\Local Settings\Application Data\<Company Name>\<appdomainname>_<eid>_<hash>\<verison>\user.config.

To view the roaming user settings, open the user.config file located at %USERPROFILE%\Application Data\<Company Name>\<appdomainname>_<eid>_<hash>\<verison>\user.config.

Using the code

To add application or user settings to a project, right-click on the project name in the Solution Explorer window, and click Properties. Then, click on Settings in the left tab list.

Sample Image - AppSettings2005.jpg

When a setting is added to the Visual Studio designer, a public property is created in the My.Settings namespace. Depending on the scope of the setting, the property will be ReadOnly or writable. This allows you to programmatically change the user setting values and save them with the My.Settings.Save() method.

A second way to save settings is to enable the 'Save My.Settings on Shutdown' setting in the application. To do this, right-click on the project name in the Solution Explorer window, and click Properties. Then, click on Application in the left tab list.

Sample Image - AppSettings2005_save.jpg

To restore the last saved dimensions of a form, we set the size and location of the form from the user settings in the form's Load event.

Private Sub Form1_Load _
    (ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Load
        'Set textboxes and form name from application and user settings


        'Notice how the application setting property is ReadOnly

        Me.Text = My.Settings.MainFormText

        'Notice how the user settings are writable

        Me.Size = My.Settings.MainFormSize
        Me.Location = My.Settings.MainFormLocation

        Me.txtFormText.Text = My.Settings.MainFormText

        'Show the form now

        Me.Visible = True
    End Sub

In the form's FormClosing event, we save the form's size and location values to the current values.

Main form closing

Private Sub Form1_FormClosing _
    (ByVal sender As Object, _
    ByVal e As System.Windows.Forms.FormClosingEventArgs) _
    Handles Me.FormClosing
        Try
            'Set my user settings MainFormSize to the

            'current(Form) 's size

            My.Settings.MainFormSize = Me.Size

            'Set my user setting MainFormLocation to

            'the current form's location

            My.Settings.MainFormLocation = Me.Location

            'Save the user settings so next time the

            'window will be the same size and location

            My.Settings.Save()

            MsgBox("Your settings were saved successfully.", _
            MsgBoxStyle.OkOnly, "Save...")
        Catch ex As Exception
            MsgBox("There was a problem saving your settings.", _
            MsgBoxStyle.Critical, "Save Error...")
        End Try
    End Sub

Conclusion

You can use application and user settings for many things in .NET 2.0. Just remember that if you want to change the settings then the scope has to be set as User.

History

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
GeneralTweaking the code to handle window sizing better Pin
Martin Omander
10:03 30 Sep '08  
GeneralHow do I change ConnectionString in app.config Pin
Leif Thomsen
2:57 23 Aug '08  
GeneralIs it safe? Pin
Dan'M
0:32 27 Oct '07  
AnswerRe: Is it safe? Pin
depmoddima
1:00 2 Nov '07  
QuestionExpress Edition Pin
FREEYO
16:19 17 Jul '07  
Generalapplication settings in ToolStripMenuItem Pin
jhon edison
19:25 20 Apr '07  
GeneralRe: application settings in ToolStripMenuItem Pin
ctwalker
5:30 16 Aug '07  
QuestionMy.Settings.Save for complex types? Pin
jerome5136
18:23 9 Apr '07  
GeneralRe: My.Settings.Save for complex types? Pin
emoreau
8:30 18 May '07  
AnswerRe: My.Settings.Save for complex types? Pin
jerome5136
8:36 18 May '07  
AnswerRe: My.Settings.Save for complex types? Pin
jerome5136
8:37 18 May '07  
GeneralRe: My.Settings.Save for complex types? Pin
emoreau
8:41 18 May '07  
QuestionIt's possible to have my.Setting from different classes? [modified] Pin
papervegetal
23:29 29 Mar '07  
Questionpersist settings between versions Pin
Thomas Fang
10:19 18 Dec '06  
AnswerRe: persist settings between versions Pin
ctwalker
5:36 16 Aug '07  
QuestionWindows service is not reading the settings [modified] Pin
SvenCPA
1:35 11 Jul '06  
QuestionRe: Windows service is not reading the settings Pin
UfiPhil
18:20 20 Aug '06  
AnswerRe: Windows service is not reading the settings Pin
itoleck
4:13 14 Sep '06  
GeneralApplication Bindings Pin
dotslashmartyn
14:42 9 May '06  
GeneralHow to handle application version change Pin
dscemama
4:36 1 May '06  
AnswerRe: How to handle application version change Pin
majze1
21:11 5 Sep '06  
Generalwhat about C#? Pin
Paul Horstink
2:29 29 Apr '06  
GeneralHoly Crap! Pin
John Saccoccio
8:26 9 Nov '06  
GeneralRe: Holy Crap! Pin
Robert Jeppesen
2:31 28 Mar '07  
GeneralVB Only Focus Pin
JohnnySacks
10:26 2 Apr '07  


Last Updated 11 Jan 2006 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009