一个WinForm程序,考虑到界面美观性,不得不把comboBox1本身调小一点.
但是一旦Items的条目过多,则会出现滚动条,滚动条会遮档Item最右边几个文字,我认为解决这个问题有两招1.用什么方法东西判断滚动条出现了,然后把显示框左右方向扩大一个滚动条宽度的位置2.有没有什么属性设置,能让滚动条占位置时向外延伸,而不是吃掉内部的位置.我的能力还不足以自己完成,请大家教我怎么实现吧!

解决方案 »

  1.   

    1) Items.Count > ComboBox.MaxDropDownItems时右边将出现滚动条
    2) 在OnDropDown()方法中设置DropDownWidth应该可以调整显示宽度
    3) 参考:C#实现的多列数据绑定组合框控件MultiColumnComboBoxEx
      

  2.   

    其实问题不在滚动条。你可将这个控件初始状态设为收回。在得到焦点时,按空格键,它可以自动展开,供你选用。回车确认失去焦点时,它又可以自动收回。直接按F4也可以,但不如按空格键来得方便。以下是它的一个方法:    private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ( e.KeyChar == (char)(Keys.Space) )
            {
                SendKeys.Send("{F4}"); // 用代码发送按 F4 键, 可展开下拉列表框
            }
        }