我正在寻找一种方法让一些控件在设计时具有Anchor = Top,Bottom,Left,Right,这样当我缩放父窗体时它们会改变。但是,在缩放父窗体时,不会在运行时执行此操作。
有类似的东西吗?
答案 0 :(得分:3)
您可以使用DesignMode
属性来检测控件当前是否处于设计模式。这样您就可以在Anchor
属性(以及其他属性)中设置适当的值,以便在设计和非设计模式下按照您的意愿运行。
答案 1 :(得分:2)
您可以轻松地删除那些在加载时触发的事件的锚点。
答案 2 :(得分:1)
此示例控件的工作原理如下:
using System;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;
internal class SampleControl : Control {
public SampleControl() {
this.BackColor = Color.Yellow;
}
protected override void OnHandleCreated(EventArgs e) {
base.OnHandleCreated(e);
if (this.DesignMode) this.Anchor = AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override AnchorStyles Anchor {
get { return base.Anchor; }
set { base.Anchor = value; }
}
}