重叠面板时防止子组件

发布于 2024-12-25 16:23:28 字数 304 浏览 3 评论 0原文

我有一个 WinForms 应用程序,它有两个面板,分别包含一个用户控件组件(每个面板一个)。然而,由于两个面板大小相同且位置相同,因此最顶部的面板将成为另一个面板的子面板。我希望能够隐藏一个面板,然后显示另一个面板:

this.panel1.visibile = false;
this.panel2.visibile = true;

但是当我隐藏 panel1 时,第二个面板也被隐藏。

如何使 panel2 成为 panel1 的非子项?

我喜欢让事情变得简单,因为我是 C# 编程新手。

I have a WinForms application which has two panels which individually contain a usercontrol component (one in each panel). How ever, because both panels are the same size and in the same location, the top most panel becomes a child of the other panel. I want to be able to hide one panel and then show the other panel:

this.panel1.visibile = false;
this.panel2.visibile = true;

But when I hide panel1, the second panel is hidden as well.

How can I make panel2 a non-child of panel1?

I like to keep things simple because I'm new to C# Programming.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云仙小弟 2025-01-01 16:23:28

这是设计师中常见的意外。将第二个面板放在第一个面板的顶部将使其成为第一个面板的子面板。解决此问题的两个基本策略:

  • 视图 + 其他窗口 + 文档大纲。单击列表中的第二个面板并将其拖动到表单中。您需要通过在“属性”窗口中键入其值来手动修复“位置”属性。

  • 将第二个面板的左上角保持在第一个面板的左侧或顶部位置。通过在调用 InitializeComponent() 之后分配其 Location 属性,将其放置在窗体构造函数中的正确位置。

检查此答案以获取有效的控件设计时效果很好,让您可以在运行时轻松翻转面板。

This is a common accident in the designer. Dropping the second panel on top of the first one will make it a child of the first panel. Two basic strategies to fix this:

  • View + Other Windows + Document Outline. Click the second panel in the list and drag it to the form. You'll need to fix up the Location property by hand by typing its value in the Property window.

  • Keep the upper left corner of the second panel just a bit to the left or top of the first panel. Put it in the right place in the form's constructor by assigning its Location property after the InitializeComponent() call.

Check this answer for a control that works well at design time and lets you easily flip panels at runtime.

牵你的手,一向走下去 2025-01-01 16:23:28

设计器会自动执行此操作,因为它假设当您将一个控件拖动到另一个控件上时,您希望使其成为该控件的子控件。

为了解决这个问题,我通常会在窗体上的不同位置创建控件,然后使用属性手动匹配两个控件的大小位置。

The designer will do this automatically because it assumes that when you drag one control over another, you want to make it a child of that control.

What I usually do to get around this is to create the control in a different place on the form, and then use the properties to manually match the positions of sizes of the two controls.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文