如何在不实际调整大小的情况下触发Control.Resize事件?

maf*_*afu 6 c# events controls resize winforms

我不是控件的子类.尝试通过Control.Size = Control.Size失败触发事件,因为即使新的大小实际上不同,它也不会触发.

Mar*_*ell 8

如果您是子类Control,则可以OnResize直接调用,或在API上公开它:

 public void OnResize() {
     this.OnResize(EventArgs.Empty);
 }
Run Code Online (Sandbox Code Playgroud)

但是,您无法对任意控件执行此操作.你可以改变Size来往吗?或者,你可以使用反射,但这是hacky:

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