2013-07-28 68 views
3

我在工具欄中嵌入了一個組合框 - 一個ToolStripCombobox實例。WinForms - 如何在應用程序的設置中保存組合框選擇?

項目列表是enum的值列表。

我希望能夠加載/保存選擇(其中Selected[Index|Item|Text|...]性質的,自/至應用程序的Settings「機制」。

理想情況下,我想能夠做到這一點從設計師

通常情況下,掛鉤控件的屬性,以一定的設置是從該控件的屬性來完成(在設計),下(ApplicationSettings) - 。但沒有一個SelectedXXX性質在裏面顯示出來

FWIW,在帶寬限制的組合框的特定情況下,實際上發現的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不支持這個功能,是否有一種(簡單的)方法可以從中獲得我自己的類型,並以這種方式公開它的屬性,使其可以與基礎設施(及其支持在設計師)?

回答

1

如果你願意來包裝TooltipComboBox在自己的自定義控制,你可以做這樣的:

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


} 

請注意,我沒有測試過這超出了確認,我可以控制添加到ToolStrip,並且我可以選擇一個屬性 - 您可能需要添加PropertyChanged Events以使其完全工作。

+0

有趣的,我會試一試。 –

相關問題