日期:2014-05-18  浏览次数:20903 次

如何禁止在单击组合框右边向下的箭头时不显示下拉列表?
我从 ComboBox 派生了一个类:MultiColumnComboBox:


当单击 ComboBox 右边向下的箭头时,我的类型会显示一个关联的 DataGridView,
但此时 ComboBox 的默认实现会下拉出一个空的列表控件,这非常难看!
我希望单击箭头时,不显示下拉出来的列表控件,该如何做呢?

------解决方案--------------------
在Form的Load中先将combox的下面两个属性设置为
combox1.DropDownHeight = 1;
combox1.DropDownWidth = 1;
dbgV.Visible=false;
然后再
private void cboLst_MouseClick(object sender, MouseEventArgs e)
{
dbgV.Top = cboLst.Top + cboLst.Height;
dbgV.Left = cboLst.Left;
dbgV.Visible = true;
dbgV.Show();
}
----------------------------------------------
刚试过,没问题。可以不显示combox的那空白行。
------解决方案--------------------
private void myCombox1_MeasureItem( object sender, MeasureItemEventArgs e )
{
e.ItemHeight = 0;
}
对这个事件进行处理就可以不显示,只是把高度设为了0而已。能实现你要的效果。或者你把这个事件进行重写,那么就可以直接实现了,不用在事件委托里设置了。