C# WinForms-如何在应用程序中保存组合框选择';什么样的设置?

C# WinForms-如何在应用程序中保存组合框选择';什么样的设置?,c#,winforms,binding,controls,application-settings,C#,Winforms,Binding,Controls,Application Settings,我在toolstrip中嵌入了一个combobox—一个ToolStripCombobox实例 项目列表是枚举的值列表 我希望能够从应用程序的设置“机制”加载/保存所选内容(其中一个所选[Index | Item | Text |…])属性 理想情况下,我希望能够从设计师那里做到这一点 通常,从控件的属性(在设计器中)在(应用程序设置)下将控件的属性挂钩到某个设置,但是选择的xxx属性都不会显示在那里 FWIW,在toostrip绑定组合框的特定情况下,实际的SelectedXXX属性实际上可以

我在toolstrip中嵌入了一个combobox—一个
ToolStripCombobox
实例

项目列表是
枚举
的值列表

我希望能够从应用程序的
设置
“机制”加载/保存所选内容(其中一个
所选[Index | Item | Text |…])
属性

理想情况下,我希望能够从设计师那里做到这一点

通常,从控件的属性(在设计器中)在
(应用程序设置)
下将控件的属性挂钩到某个设置,但是
选择的xxx
属性都不会显示在那里

FWIW,在toostrip绑定组合框的特定情况下,实际的
SelectedXXX
属性实际上可以在
toolStripComboInstance.ComboBox.SelectedXXX
中找到更深一点

到目前为止,我所做的是在代码中配置绑定:

m_runTypeCombo   //the toolstrip control
    .ComboBox    //the actual combobox
    .DataBindings.Add(
    new System.Windows.Forms.Binding(
        "SelectedItem", 
        global::JavaPad.Properties.Settings.Default, 
        "RunType", 
        true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged
    )
);

上述方法可行,但我希望有更干净的东西(即基于设计器的)。如果内置的
ToolStripCombobox
不支持这一点,是否有(简单)方法从中派生我自己的类型,并公开
SelectedXXX
属性,使其与应用程序设置基础结构协同工作(及其在设计器中的支持)?

如果您愿意在自己的自定义控件中包装ToolIPComboBox,您可以这样做:

public class MyCombo : ToolStripComboBox
{
    [SettingsBindable(true)]
    public int SelectedIndex
    {
        get { return ComboBox.SelectedIndex; }
        set { ComboBox.SelectedIndex = value; }
    }


}

请注意,除了确认我可以将控件添加到ToolStrip,并且我可以选择一个属性之外,我还没有对此进行测试-您可能需要添加PropertyChanged事件以使其完全工作。

有趣的是,我将尝试一下。