【问题标题】:How to create an overlay part of control in Winforms C#?如何在 Winforms C# 中创建控件的覆盖部分?
【发布时间】:2011-06-16 22:57:33
【问题描述】:

我需要创建一个自定义控件,该控件具有作为面板的可扩展部分和一个文本框部分。可扩展部分是一个面板,它可以是可见的,也可以是不可见的。但是当面板直接在文本框下方可见/展开时,我不希望相邻控件向下移动到面板下方,但面板应该只覆盖自定义控件下方的控件。我将如何在 Winforms C# 项目中实现这一点? 我愿意在这种情况下使用用户控制。

谢谢 苏尼尔

【问题讨论】:

  • 控件没有理由下移。这通常需要像 TableLayoutPanel 或 FlowLayoutPanel 这样的布局控件。目前尚不清楚您为什么认为它们会移动。是否重叠取决于Z-order,只需将控件移到前面即可。唯一的其他细节是您必须使 UserControl 更大以使面板可见。只需更改 Size 属性。也不需要面板。

标签: c# winforms overlay


【解决方案1】:

我认为您的扩展和折叠实现不是最好的,因为您只是覆盖控件而不是隐藏它们。 缺点之一是覆盖的控件可能会通过按 Tab 来聚焦,并且它们可能具有我认为超出目标的值。

我建议通过创建两个面板(一个用于标题,另一个用于内容)来实现另一种实现,当按下折叠按钮时,内容的面板将通过将其 Visible 属性设置为 false 和它的Hight0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    相关资源
    最近更新 更多