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

解决方案 »

  1.   

    单击右边向下的箭头时显示如下,ComboBox 的列表控件与我自己实现的 DataGridView 全都出来了:
      

  2.   

    多列的ComboBox??
    为什么不利用DrawItem~~~~~codeproject上有例子
    自己去找找~~~~
      

  3.   

    看看这个
    http://www.codeproject.com/cs/combobox/DotNetMultiColumnComboBox.asp
      

  4.   

    不使用默认的ComboBox控件,换用一个按钮来打开另一个窗体,在这个窗体里承载DataGridView控件显示数据。
      

  5.   

    To lovefootball:
    拥有者自绘的 ComboBox 不方便,因为要绑定到一个 DataTable,使用 DataGridView 是最好的。你介绍的控件我在开发之前就看过了,它没有列标头,不适合我的项目。To hbxtlhx:
    我也想过使用一个复合控件:TextBox + Button 来实现。To All:
    我现在想知道的是:如何不让 ComboBox 显示自己的列表控件?
      

  6.   

    我顶!!!高手,怎么让 ComboBox 不显示自己的下拉列表控件?
      

  7.   

    在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的那空白行。
      

  8.   

    private void myCombox1_MeasureItem( object sender, MeasureItemEventArgs e )
            {
                e.ItemHeight = 0;
            }
    对这个事件进行处理就可以不显示,只是把高度设为了0而已。能实现你要的效果。或者你把这个事件进行重写,那么就可以直接实现了,不用在事件委托里设置了。
      

  9.   

    有一個很笨的方法,就是在點ComboBox時,把焦點給別的控件
      

  10.   

    To Red_Fish:只需要设置 ComboBox 的 combox1.DropDownHeight   =   1; 
    combox1.DropDownWidth   =   1; 这两个属性,就可以不显示它的列表控件了。
    非常感谢您!
    To lye2000000_Super:因为 Red_Fish 的方法已经实现了我想要的效果,所以您的方法我没有试过。
    不管怎么说,还是说声谢谢!