【发布时间】:2010-04-01 14:02:47
【问题描述】:
我通过将Property.Settings 绑定到PropertyGrid 创建了一个简单的用户设置对话框。
这就像一个魅力,但现在我想只允许某些值的某些选择。我注意到某些类型会提供可能选择的下拉列表。这就是我所追求的,但不是为了,比如说,字符串。
例如,Settings 之一是 UserTheme,它是一个字符串。 黑色、蓝色、银色。程序从设置文件中读取该字符串并在启动时设置主题。
我可以输入正确的主题并且它可以工作,但如果我输入 Pink 则不会,因为没有粉色选项。
这是我非常简单的 UserSettingsForm 代码。
#region FIELDS
internal Settings userSettings;
#endregion
#region EVENTS
private void frmEditUserControl_Load(object sender, EventArgs e)
{
userSettings = Settings.Default;
this.propertyGrid1.SelectedObject = userSettings;
this.propertyGrid1.PropertySort = PropertySort.Alphabetical;
}
private void btnSave_Click(object sender, EventArgs e)
{
userSettings.Save();
//this.DialogResult = DialogResult.OK;
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
userSettings.Reload();
this.Close();
}
#endregion
编辑
好的,按照这里的建议,我创建了一个包含 enum 的库文件。在我的主应用程序中引用了dll。现在在settings 我看到enum 但dropdown 只提供第一个enum 作为选项。想法?
namespace psWinForms
{
public enum UserTheme
{
Blue,
Black,
Silver,
Green,
Pink
};
}
【问题讨论】:
-
它只显示设计器中的第一个选项,但在运行时显示所有选项。不知道为什么,但它现在正在“工作”。
标签: c# .net winforms settings propertygrid