2011-12-14 73 views
0

我已经实现了一个组合框,其中有一个复选框(Windows窗体应用程序)。这工作非常好。在Visual Studio中增强组合框

使用:C#,Visual Studio 2010中

问题: 问题,我的组合框是下拉选择每次关闭后。

问题: 是否有任何可能的下拉菜单保持固定直到我选择多个项目?

只是想知道是否有办法做到这一点。

谢谢。

+1

的WinForms,WPF,还是别人?请添加标签。 – 2011-12-14 19:51:13

+1

你如何设想用户通信他们完成选择?这个想法违反了组合框的一些公认的用户惯例 - 并且最好用自定义解决方案(例如,在对话框或小窗体上弹出CheckListBox)。 – 2011-12-14 22:23:58

+0

@JohnArlen例如* look-and-feel *你可以看** Windows资源管理器**或** Excel **。 – 2011-12-16 21:25:19

回答

0

添加这个WPF控件假设您正在使用的WinForms工作:

public class CheckComboBox : ComboBox 
{ 
    Timer _timer = new Timer(); 

    public CheckComboBox() 
    { 
     _timer.Interval = 1; 
     _timer.Tick += timer_Tick;  
    } 
    protected override void OnDropDownClosed(EventArgs e) 
    { 
     base.OnDropDownClosed(e); 
     if (checkbox has been clicked) { 
      _timer.Start(); 
     } 
    } 

    void timer_Tick(object sender, EventArgs e) 
    { 
     _timer.Stop(); 
     DroppedDown = true; // Reopens dropdown. 
    } 
} 
0

您可以关闭停止组合框,如果你阻止你的复选框从点击时获得焦点。

要做到这一点,你需要从CheckBox类派生并和覆盖控制标志在构造函数中:

SetStyle(ControlStyles.Selectable, false);