我正在尋找一種方法讓一些控件在設計時具有Anchor = Top,Bottom,Left,Right,這樣當我縮放父窗體時它們就會改變。但是在父窗體縮放時不會在運行時執行此操作。有沒有辦法讓Winforms控件的屬性在設計時有不同的表現(在VS設計器中)?
有沒有這樣的事情?
我正在尋找一種方法讓一些控件在設計時具有Anchor = Top,Bottom,Left,Right,這樣當我縮放父窗體時它們就會改變。但是在父窗體縮放時不會在運行時執行此操作。有沒有辦法讓Winforms控件的屬性在設計時有不同的表現(在VS設計器中)?
有沒有這樣的事情?
您可以使用DesignMode
屬性來檢測控件是否當前處於設計模式。這樣,您應該能夠在Anchor
屬性(以及其他屬性)中設置適當的值,以便在設計模式和非設計模式下按照您的需要進行操作。
您可以很容易地移除這些錨點,並在負載上觸發事件。
這種採樣控制工程這樣的:
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; }
}
}
嗨nobugz,還沒有看到你很長一段時間,因爲MSDN。 – 2009-11-25 20:57:36