隐藏C#中组合框中的箭头按钮,VS2008
本文关键字:按钮 VS2008 组合 隐藏 | 更新日期: 2023-09-27 18:19:25
我需要隐藏组合框的箭头按钮。
我希望DropDownStyle
属性等于ComboBoxStyle.DropDownList
,并且下拉箭头是可见的。我能做到吗?
有没有其他控件可以用来显示图像的下拉列表?
谢谢你的帮助。
您可以尝试伪造它。用Textbox
覆盖它,在Textbox's
GotFocus()事件中,只需设置comboBox.Focus()
尝试将DropDownStyle=Simple和Height设置为仅显示一行(约24px)。
您可以创建一个扩展控件,也可以为此目的覆盖表单中组合框的绘制事件
您可以使用Popup控件来显示您想要的内容。
对于WPF:MSDN上的弹出控件。
对于Winform:CodeProject.com上的简单弹出菜单
对于WinForms,您可能喜欢基于一个按钮的类,该按钮在上下文菜单中弹出您的项目,然后将所选项目的文本作为按钮文本:
public class DropList : Button
{
public event EventHandler TextChangedByUser;
private ContextMenu _CM = new ContextMenu();
private string[] _Items;
public string[] Items
{
get { return _Items; }
set
{
_Items = value;
_CM.MenuItems.Clear();
foreach (string sChoice in _Items)
{
MenuItem MI = _CM.MenuItems.Add(sChoice, MI_Click);
}
}
}
private void MI_Click(object sender, EventArgs e)
{
if (this.Text != (sender as MenuItem).Text)
{
this.Text = (sender as MenuItem).Text;
if (TextChangedByUser != null) TextChangedByUser.Invoke(this, new EventArgs());
}
}
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
_CM.Show(this, new System.Drawing.Point(0, this.Height - 1));
}
}