What exactly is it that you're trying to achieve? I was under the impression that you wanted to show a welcome screen the first time a user ran the application. Is that not your intention?
Note that the application config file contains the default value for all User-scoped settings. These default values are used to generate a user-specific config file under the currrent user's Documents and Settings folder, which is how each user can have different values for those settings. When you run your app it checks whether the current user already has a config file. If they do then it is used. If they don't then one is generated from the default values in the application config file.
Once you've debugged your app for the first time it will have generated a user config file and that value will be used every time you run the app thereafter. If you want to clear all user config files then you go to the Settings tab in the project properties and click the Synchronize button. This will delete all user config files and you start afresh with all default values. Obviously when you distribute your app your users will not have a config file already so they will see the welcome screen the first run.
What that GenerateDefaultValueInCode property does is determine whether the default value is placed in your VB code as well as your config file, or just in your config file. One reason you might care is that the config file can be encrypted to protect sensitive data, while if something like a connection string is placed in your VB code as well it might be found through decompilation. The advantage of having it in code is that the end user can't edit it, which they can if it is just in the config file. Here's an example of the code for a setting in the Settings.Designer.vb file with that property set to False:
VB Code:
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property Setting() As String
Get
Return CType(Me("Setting"),String)
End Get
Set
Me("Setting") = value
End Set
End Property
Here's the corresponding code with the property set to True:
VB Code:
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("DefaultSettingValue")> _
Public Property Setting() As String
Get
Return CType(Me("Setting"),String)
End Get
Set
Me("Setting") = value
End Set
End Property