在Winforms中,我如何重写组合框的OnDropDown方法

本文关键字:组合 重写 方法 OnDropDown Winforms 何重写 | 更新日期: 2023-09-27 18:11:09

我试图使用这里找到的方法来创建一个显示选择网格而不是内置列表下拉的自定义组合框。解决方案基本上只是覆盖OnDropDown方法,创建一个表单并显示它。但是,我发现当我单击向下箭头时也会显示内置的下拉菜单。我的表格在上面画出来了,但它会很快显示出来。什么好主意吗?

protected override void OnDropDown(EventArgs e)
{
  DropDownForm dropDown = new DropDownForm();
  // Locate at correct location.
  DropDownForm.Location = ...;
  DropDownForm.Show();
}

在Winforms中,我如何重写组合框的OnDropDown方法

在这种情况下,我建议使用简单的自定义用户控件。创建一个带有文本框和打开网格的按钮的用户控件,而不是试图规避默认行为(该控件是为此而设计的),这将是微不足道的。事实上,你可以把你的网格和你的下拉菜单捆绑在一起,并拥有一个完全可重用的控件。