【问题标题】:Need to set controls anchor property需要设置控件锚属性
【发布时间】:2011-03-02 09:44:44
【问题描述】:

我的一个窗口构成了很多控件,我需要设置锚属性top and right,注意:我需要为每个控件独立处理位置属性。我不想手动设置这个属性。需要帮助来动态设置控件的锚属性。

我写下面的语法

 DynamicControlsProperty od = new DynamicControlsProperty();
    foreach (Control item in this.controls)
    {
        item.Anchor = AnchorStyles.None;
        item.Anchor = (AnchorStyles.Top | AnchorStyles.Right);
    }

在我的窗口窗体上使用上述语法,控件不会显示为上述语法的锚集。控件显示为默认锚集。

【问题讨论】:

  • 什么是DynamicControlsProperty
  • 我不明白你在做什么。但是上面的代码应该可以正常工作。所以很可能是你的另一段代码中的错误
  • “控件显示为默认锚集”是什么意思?你怎么知道?另外,你也设置了Dock 吗?因为您可以拥有 Anchor 或 Dock,而不是两者兼有。

标签: c# winforms


【解决方案1】:

尝试使用这个

 foreach (Control item in this.Controls)
 {
      item.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);
 }

【讨论】:

    【解决方案2】:

    您应该编写代码以仅在表单的Form_Load 事件中以编程方式设置Anchor 属性。如果您在其他任何地方编写该代码,例如在button_click 上,则必须在其后写下以下行:

    this.Invalidate(true);
    

    但是,如果您的表单已经处于最大化模式,这可能会导致意外结果。

    【讨论】:

    • 实际上,编写该代码的最佳位置是在构造函数中。
    • 对,在构造函数中分配和设置对象,但与处置相关的所有内容都必须写入 Load 方法。
    【解决方案3】:

    我最终不得不设置位置。我喜欢 Stecya 的溶液,但它对我不起作用。

    MyControl.Location = new Point(0, 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 2014-10-08
      相关资源
      最近更新 更多