防止下拉区域在窗体中打开组合框控件

sam*_*mar 1 c# winforms

我在 Windows 窗体中有一个自定义组合框控件。我想实现一个功能,其中基于某些条件不应该显示下拉区域,即我需要根据某些条件阻止组合框打开。

我找到了一个可以实现这一点的链接,但它完全阻止了下拉区域的显示。此外,我无法根据我的方便调整该方法。这里给出链接。

Dan*_*rth 5

只需将您的条件添加到该if语句中:

public class CustomComboBox : ComboBox
{
  protected override void WndProc( ref  Message m )
  {
    if(yourCondition && 
       (m.Msg == 0x201 || // WM_LBUTTONDOWN
        m.Msg == 0x203)) // WM_LBUTTONDBLCLK
      return;
    base.WndProc( ref m );
  }
}
Run Code Online (Sandbox Code Playgroud)