我想进入这里:
Protected override void OnResize(EventArgs e)
{
}
当我将WindowState更改为Maximize / Normal时。我该怎么做?
答案 0 :(得分:1)
为什么要特别想要这种方法?当WindowState更改时,将调用OnClientSizeChanged()方法,您应该可以在那里进行相同类型的工作。
请注意,如果您需要实际知道由于WindowState更改而调用该方法而不是用户调整窗口大小,那么添加一个设置为当前WindowState值的私有字段并且在OnClientSizeChanged()方法,将该字段与实际的WindowState值进行比较。
例如:
private FormWindowState _lastWindowState;
protected override void OnClientSizeChanged(EventArgs e)
{
base.OnClientSizeChanged(e);
if (WindowState != _lastWindowState)
{
_lastWindowState = WindowState;
// Do whatever work here you would have done in OnResize
}
}
答案 1 :(得分:0)
如果您必须使用该覆盖,您可以这样做:
protected override void OnResize(EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized ||
this.WindowState == FormWindowState.Normal)
{
// Do something here
}
// You should probably call the base implementation too
base.OnResize(e);
// Note that calling base.OnResize will trigger
// Form1_Resize(object sender, EventArgs e)
// which is normally where you handle resize events
}
或者,将您的代码放入Resize事件(正常的'方式):
private void Form1_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized ||
this.WindowState == FormWindowState.Normal)
{
// Do something here
}
}