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

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

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

  DropDownForm.Show();
}

最佳答案

在这种情况下,我会推荐自定义用户控件的简单性。与其试图规避默认行为(控件的设计目的),不如创建一个带有文本框和打开网格的按钮的用户控件。事实上,您可以将网格与下拉菜单捆绑在一起,并拥有一个完全可重用的控件。

关于c# - 在 Winforms 中,如何覆盖 ComboBox 的 OnDropDown 方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7742738/

10-12 22:20