读书人

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

发布时间: 2013-09-15 19:58:13 作者: rapoo

如何解决下拉列表超出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进行定位。这样就不存在问题了。

读书人网 >C#

热点推荐