2009-02-05 87 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); 
相关问题