繁体   English   中英

C#winforms,如何使组合框向上打开/是否可以打开组合框?

[英]C# winforms, How can I make a Combobox open upwards / Is there one that does?

在C#中,一个winforms应用程序

如何制作向上打开的组合框/是否有一个向上打开的组合框?

我看到一些类似的问题,但它们是指WPF应用程序而不是Winforms应用程序。 我在问一个Winforms应用程序。

当使用WinForms时,这并不容易,但是我可以给我我的想法。

您应该知道,即使将combobox visible属性设置为false,其下拉菜单仍可以通过编程方式显示。 因此,想法是创建一个包含2个组合框的用户控件:

我的用户控件示例

上方的组合框不可见。 当用户单击主菜单下方的主菜单时,上部的菜单将被重新放置并下拉。

        private void cbb_main_Click(object sender, EventArgs e)
    {
        cbb_2.Location = new Point(cbb_main.Location.X, cbb_main.Location.Y - cbb_2.Size.Height - (cbb_2.ItemHeight *cbb_2.Items.Count));
        cbb_main.DroppedDown = false;
        cbb_2.DroppedDown = true;
    }

最后,将自定义控件添加到表单中并尝试一下! 结果图像在这里!

我希望这是您要寻找的。

如果您的组合框中有足够的空间,并且窗体的高度足够低,以至于组合框的内容达到屏幕底部附近,那么它将向上打开。

向下

在此处输入图片说明


现在,我将表格向下拖动一点。 (或者我可以在组合框中添加一些元素),您会看到它向上打开。

向上

在此处输入图片说明


当然,如果它覆盖一点任务栏时向上弹出(或者如果组合框以z顺序优先,而似乎没有),那肯定会更好。 令人烦恼的是,如果它处于覆盖任务栏的边缘,因为内容没有降低到不足以使其向上弹出的程度。 然后,当您在组合框中选择较低的内容时,也将鼠标悬停在任务栏中的某个内容上,然后将鼠标悬停在任务栏中的一组窗口上时,可以打开Windows 7,例如资源管理器窗口。 (顺便说一句,无论任务栏的大小如何,都会存在该问题)。 但是在这种情况下,正如此答案所言,您可以将表格拖动到更低的位置以解决该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM