【问题标题】:Location of controls got changed after adding it to a tabpage将控件添加到标签页后更改了控件的位置
【发布时间】:2013-04-29 12:21:19
【问题描述】:

我有一个使用 tabPage 的 winform 应用程序,并且我在页面中动态添加了一些控件。然而,此后控件的位置发生了变化。经过一些调整,控件的位置似乎正确,但某些控件的大小又不正确了。请帮忙!!!谢谢

代码sn-p是这样的:

foreach (Control c in controls)
{
    Point oldLocation = c.Location;
    this.SuspendLayout();                                          
    this.Controls.Add(c);                        
    c.Location = oldLocation;                       
    c.BringToFront();
    this.ResumeLayout(false);
    this.PerformLayout();
}

【问题讨论】:

  • 也许是您的控件的 AutoSizeMode 值导致然后被调整大小?
  • 嗯...即使我禁用了所有这些的自动调整大小。看起来还是一样。可能会在所有控件上都无法使用 Bringtofront...

标签: c# winforms tabpage


【解决方案1】:

我可能没有详细描述这一点。我需要的是有一个浮动标签页;所以我最终保留了另一个表单,并在浮动和停靠模式之间切换时打开/隐藏表单和标签页。

为此,我需要从表单和页面中复制/删除所有控件。原来在remove/copy之间控制位置/size会发生变化。

我最终得到的解决方法是在删除和复制之前存储原始位置/大小,然后重置控件的位置和大小。 这听起来是一个相当蹩脚的解决方案,但我现在找不到更好的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2012-08-27
    相关资源
    最近更新 更多