C# 如何使自定义控件显示在窗体/父控件的边界之外?

C# 如何使自定义控件显示在窗体/父控件的边界之外?,c#,.net,winforms,combobox,C#,.net,Winforms,Combobox,我已经创建了一个自定义组合框,但是有一件事我已经坚持了好几个星期了,仍然没有任何东西可以展示,因为我就是想不出来。我试着在网上搜索,但我找不到任何关于它的信息 我想做的是,允许组合框的列表部分(下拉并显示列表的部分)显示在表单边界之外,如下所示: 我不确定为什么我找不到与此相关的任何东西-也许我没有使用正确的术语进行搜索。但是我以前从来没有这样做过,所以我甚至不知道该怎么称呼它 如何使控件的一部分显示在窗体/其父控件的边界之外?我知道winform中的combox会自动执行此操作。你可以发布一

我已经创建了一个自定义组合框,但是有一件事我已经坚持了好几个星期了,仍然没有任何东西可以展示,因为我就是想不出来。我试着在网上搜索,但我找不到任何关于它的信息

我想做的是,允许组合框的列表部分(下拉并显示列表的部分)显示在表单边界之外,如下所示:

我不确定为什么我找不到与此相关的任何东西-也许我没有使用正确的术语进行搜索。但是我以前从来没有这样做过,所以我甚至不知道该怎么称呼它


如何使控件的一部分显示在窗体/其父控件的边界之外?

我知道winform中的combox会自动执行此操作。你可以发布一些关于你是如何做你的自定义组合框的信息吗?那么你的自定义组合框现在的行为是什么呢?单击时它是否向上显示?或者它是否隐藏在表单中作为隐藏溢出?如果你能发布你的代码,这会很有帮助。去阅读Lukasz Swiatkowski在CodeProject.com上的代码。我怀疑你能做到这一点。我猜ComboBox在引擎盖下做了一些非标准的事情。你可以创建一个没有边框的新窗口,只需将控件添加到该窗口中,放在前面,这样你就可以将窗口的大小与控件匹配。该窗口不应是主窗口的子窗口,否则将无法执行此操作。这是一个有点“黑客”的过程,但我认为真正的实现是在系统级完成的,不太容易(如果可能的话)搞乱。如果你愿意,我可以试着想出一些办法,我知道winform中的combox会自动做到这一点。你可以发布一些关于你是如何做你的自定义组合框的信息吗?那么你的自定义组合框现在的行为是什么呢?单击时它是否向上显示?或者它是否隐藏在表单中作为隐藏溢出?如果你能发布你的代码,这会很有帮助。去阅读Lukasz Swiatkowski在CodeProject.com上的代码。我怀疑你能做到这一点。我猜ComboBox在引擎盖下做了一些非标准的事情。你可以创建一个没有边框的新窗口,只需将控件添加到该窗口中,放在前面,这样你就可以将窗口的大小与控件匹配。该窗口不应是主窗口的子窗口,否则将无法执行此操作。这是一个有点“黑客”的过程,但我认为真正的实现是在系统级完成的,不太容易(如果可能的话)搞乱。如果你愿意,我可以想办法