【问题标题】:Control Docking Rectangle inside of a Panel控制面板内的停靠矩形
【发布时间】:2010-02-04 23:40:45
【问题描述】:

我有一个显示特殊标题的面板,这一切都很好 - 但是当我将其他控件停靠在该面板内时,它们的大小会适合标题下方。

我的想法是尝试抓住它并在某个地方控制它。获取 DisplayArea 不起作用 - 然后标题没有绘制在正确的位置。有什么方法可以告诉停靠来解释标题的高度吗?

使用 C#、Windows 窗体、.NET 3.5

面板:System.Windows.Forms.UserControl 标题:System.Windows.Forms.UserControl

面板 { 标题{获取;放; } }

是基本结构。这不是很复杂。

【问题讨论】:

  • 我有点困惑:如果您有一个包含 Header/UserControl 停靠在顶部的面板(我假设),并且您将另一个 UserControl 或面板添加到第一个面板并将其停靠到'顶部:它将出现在您首先添加的 Header/UserControl 下方,而不会遮挡任何部分。即使您将添加的第二个控件的 Dock 属性设置为“填充”:它也不会遮挡 Header/UserControl。所以,我需要一些帮助来可视化您在此处描述的问题。
  • 不,标题已停靠,但如果我将某些内容停靠到 .fill,它会滑到标题下方。
  • 创建一个面板,拖入另一个面板并将其停靠在顶部。然后创建另一个面板并将其停靠以填充。你会看到我正在经历的。
  • 我们正在讨论在设计时向面板添加控件:对吗?尝试在您添加到面板的任何内容部分遮挡页眉时选择页眉,右键单击并选择“发送到后面”:或选择已被页眉遮挡的任何内容并右键单击它并选择“BringToFront”。
  • Stacey 写道:“创建一个面板,拖入另一个面板并将其停靠在顶部。然后创建另一个面板并将其停靠以填充。你会看到我正在经历什么。”嗨,不,我看不到您描述的内容:停靠的第二个面板“填充将仅占用停靠的顶部控件/面板/用户控件未占用的空间,停靠的顶部标题不会遮挡其上的任何内容。跨度>

标签: c# winforms .net-3.5


【解决方案1】:

控件按 z 顺序从后向前停靠。当您在运行时添加控件时,它通常会添加到后面,这意味着它将在预先存在的控件之前停靠,从而允许新控件潜入现有控件之下。控件停靠的顺序无关紧要。

在添加其他控件后尝试在标题控件上调用 SendToBack(或者如果这是设计时问题,只需右键单击它并执行“S​​end To Back”)。

【讨论】:

  • OP 尚未澄清这是否是运行时场景。如果是运行时,最简单的方法是在控件被添加到容器中并设置其 Dock 属性后立即在控件上调用 'BringToFront。
  • 我想是的。一般来说,将新控件置于前面以屈服于现有的停靠控件可能是一种更好的方法,而不是修改那些预先存在的控件以适应新控件。在这个简单的例子中,结果是一样的。
猜你喜欢
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 2011-05-30
  • 2018-11-09
  • 2011-12-01
  • 2012-10-04
  • 2011-08-14
相关资源
最近更新 更多