首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么解决下拉列表超出panel边界的有关问题

2013-09-15 
如何解决下拉列表超出panel边界的问题窗体上放一个Panle,panel上放一个combobox, 发现combobox的下拉列表

如何解决下拉列表超出panel边界的问题
窗体上放一个Panle,panel上放一个combobox, 发现combobox的下拉列表超出panle,被panle挡住了.
解决方法
通过修改窗体的Designer.cs文件,将combobox的容器改为窗体
但下拉内容还是被panel挡住了.

请教大家该如何解决.
[解决办法]
设置combobox的DropDownHeight 就可以控制下拉框的显示高度了
[解决办法]

引用:
Quote: 引用:

设置combobox的DropDownHeight 就可以控制下拉框的显示高度了


其实我用的是一个listview, listview的高度根据其Item的数量来自动调整.

那你可以可以设置计算combobox的DropDownHeight的高度啊
[解决办法]
Panle里面放的是listview?

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

设置combobox的DropDownHeight 就可以控制下拉框的显示高度了


其实我用的是一个listview, listview的高度根据其Item的数量来自动调整.

那你可以可以设置计算combobox的DropDownHeight的高度啊


我是用listview来写了一个自定义组件
listview没有dropdownheight属性

[解决办法]
用ToolStripControlHost试试


    internal class AxDropDown<T> : ToolStripDropDown where T : Control, new()
    {
        private T _ctrl = null;
        protected ToolStripControlHost _host = null;

        public AxDropDown()
        {
            _ctrl = new T();
            _ctrl.Width = 200;
            _ctrl.Height = 200;
            
            _host = new ToolStripControlHost(_ctrl);


            _host.AutoSize = false;
            
            _ctrl.SizeChanged += new EventHandler(_ctrl_SizeChanged);
            this.Items.Add(_host);
        }


        public T DropControl
        {
            get { return _ctrl; }
        }

        private void _ctrl_SizeChanged(object sender, EventArgs e)
        {
            _host.Size = _ctrl.Size;
        }
    }


[解决办法]
最简单的是:ComboBox的父级在Form就可以。通过Left和Top进行定位。这样就不存在问题了。

热点排行