在表单外显示列表框(winforms)

010*_*101 4 c# winforms

是否有可能让我的列表框显示在表单的边界之外?

其中一个解决方案是使表单本身透明,并添加面板而不是背景的表单.

但还有其他更令人愉快的方式吗?

UPD:我需要为文本框创建自定义自动完成功能,以支持通配符.所以我想在文本框下面显示一个列表框.我的表单大小应该与文本框的大小相当.因此,在这种情况下,垂直拉伸窗体不起作用.

谢谢

010*_*101 8

实际上,它可能.这是方式:

public class PopupWindow : System.Windows.Forms.ToolStripDropDown
{
    private System.Windows.Forms.Control _content;
    private System.Windows.Forms.ToolStripControlHost _host;

    public PopupWindow(System.Windows.Forms.Control content)
    {
        //Basic setup...
        this.AutoSize = false;
        this.DoubleBuffered = true;
        this.ResizeRedraw = true;

        this._content = content;
        this._host = new System.Windows.Forms.ToolStripControlHost(content);

        //Positioning and Sizing
        this.MinimumSize = content.MinimumSize;
        this.MaximumSize = content.Size;
        this.Size = content.Size;
        content.Location = Point.Empty;

        //Add the host to the list
        this.Items.Add(this._host);
    }
}


popup = new PopupWindow(listbox1);
PopupWindow.show(); 
Run Code Online (Sandbox Code Playgroud)