gpt4 book ai didi

c# - 在 ComboBox 中隐藏 DropDownList

转载 作者:行者123 更新时间:2023-11-30 13:40:47 27 4
gpt4 key购买 nike

如何在ComboBox中隐藏DropDownList?

我只想使用 ComboBox 来显示文本。
这个控件看起来不错,对我来说比 TextBox 加 Button 更好。
所以控件必须启用,但没有任何项目。
当用户单击箭头(或 alt + 向下键)时,DropDownList 不应显示,因为错误地从自定义 DataGridView 中选择值以填充 ComboBox 中的文本。

编辑。替代解决方案是将 DropDownHeight 设置为 1,单击控件后仅显示 1 像素线。

编辑。真正的解决方案。下面回答

最佳答案

您可以在子类中拦截导致框下拉的消息。以下代码段定义了一个控件 NoDropDownBox,它忽略了导致下拉组合框的鼠标单击:

public class NoDropDownBox : ComboBox
{
public override bool PreProcessMessage(ref Message msg)
{
int WM_SYSKEYDOWN = 0x104;

bool handled = false;

if (msg.Msg == WM_SYSKEYDOWN)
{
Keys keyCode = (Keys)msg.WParam & Keys.KeyCode;

switch (keyCode)
{
case Keys.Down:
handled = true;
break;
}
}

if(false==handled)
handled = base.PreProcessMessage(ref msg);

return handled;
}

protected override void WndProc(ref Message m)
{
switch(m.Msg)
{
case 0x201:
case 0x203:
break;

default:
base.WndProc(ref m);
break;
}
}
}

关于c# - 在 ComboBox 中隐藏 DropDownList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7011177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com