2009-02-05 42 views

回答

8

如果你繼承Control,可以直接調用OnResize,或將其暴露在API:

public void OnResize() { 
    this.OnResize(EventArgs.Empty); 
} 

但是,你不能任意控制做到這一點。你可以改變Size來回?或者,你可以使用反射,但這是hacky:

typeof (Control).GetMethod("OnResize", 
    BindingFlags.Instance | BindingFlags.NonPublic) 
    .Invoke(myControl, new object[] {EventArgs.Empty}); 
0

只需更改控件的大小:Control.Size = new Size(x,y);

更改控件的大小將爲該控件發出resize事件,並且控件應調整大小。

或者,如果你只是想重新控制,然後做: Control.Invalidate();

0

爲什麼你想這樣做,在什麼情況下?例如,您可以調用OnResize,當您在控件本身中時(即在您的派生控件類中)。 (或通過反射,當你在外面。)

除此之外,你可能必須改變控件的大小,因爲這是Resize事件是:)

1

我總是這樣做調用控件的Resize事件處理程序:

control_Resize(null, null); 
相關問題