What you need to do is "hack" around with the .settings and .Designer.cs files a little, as documented here.
If you create a custom type in your project, such as:
namespace MyApp
{
public struct MyType
{
public string StringValue;
}
}
To get it to show up as an option in the Settings editor, you need to add the first setting value that uses that type to the files, as follows:
SettingsFile.settings:
<Setting Name="SettingNameGoesHere" Type="MyApp.MyType" Scope="User">
<Value Profile="(Default)" />
</Setting>
SettingsFile.Designer.cs
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::MyApp.MyType SettingNameGoesHere {
get {
return ((global::MyApp.MyType)(this["SettingNameGoesHere"]));
}
set {
this["SettingNameGoesHere"] = value;
}
}