在C#中,一个winforms应用程序,
如何制作向上打开的Combobox /是否有向上打开的?
我看到一些像这样的问题,但它们指的是WPF应用程序而不是winforms应用程序。我问的是winforms应用程序。
答案 0 :(得分:1)
使用WinForms时这并不容易,但我可以给你我的想法。
你应该知道即使组合框可见属性设置为false,它的'下拉菜单仍然可以通过编程方式显示。 因此,我们的想法是创建一个包含2个组合框的用户控件:
上部组合框是看不见的。当用户点击主要,低于1时,上面的一个将被重新定位并下拉。
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;
}
最后,将自定义控件添加到表单中并尝试一下! Result image here!
我希望这是你正在寻找的。 p>
答案 1 :(得分:0)
如果组合框中的内容足够多,并且窗体的高度足够低,以致组合框的内容命中到屏幕底部附近,那么它将向上打开。
向下
现在,我将表格向下拖动一点。 (或者我可以在组合框中添加一些元素),您会看到它向上打开。
向上
当然,如果它覆盖一点任务栏时向上弹出(或者如果组合框以z顺序优先,而似乎没有),则更好。令人烦恼的是,如果它处于覆盖任务栏的边缘,因为内容没有降低到不足以使其向上弹出的程度。然后,当您在组合框中选择较低的内容时,也将鼠标悬停在任务栏中的某个内容上,然后将鼠标悬停在任务栏中的一组窗口上时,可以打开Windows 7,例如资源管理器窗口。 (顺便说一句,无论任务栏的大小如何,都会存在该问题)。但是在这种情况下,正如此答案所言,您可以将表格拖动到更低的位置以解决该问题。