在Winforms中,如何覆盖ComboBox的OnDropDown方法?

时间:2011-10-12 15:41:53

标签: c# winforms combobox drop-down-menu

我正在尝试使用找到的here方法创建一个自定义组合框,显示选择网格而不是内置列表下拉列表。解决方案基本上只是覆盖OnDropDown方法,创建一个表单并显示它。但是,我发现单击向下箭头时也会显示内置下拉菜单。我的表格已被绘制,但它确实显示了一下。有什么想法吗?

protected override void OnDropDown(EventArgs e)
{
  DropDownForm dropDown = new DropDownForm();

  // Locate at correct location.
  DropDownForm.Location = ...;

  DropDownForm.Show();
}

1 个答案:

答案 0 :(得分:4)

在这种情况下,我建议简单的自定义用户控件。而不是试图绕过默认行为(控件的设计目的),创建一个带有文本框和打开网格的按钮的用户控件是微不足道的。实际上,您可以将网格与下拉列表捆绑在一起,并具有完全可重复使用的控件。