C# winForm中,当窗体大小改变时,会触发什么事件?

请问C# winForm中,当窗体大小改变时,会触发什么事件?
是Resize事件吗?好像不是,我运行之后,啥也没发生!
万分感谢回答的博客们!!!


```c#
private void Form1_Resize(object sender, EventArgs e)
        {
                MessageBox.Show("窗体大小改变了!");
        }

```

你需要关联下Form1_Resize和Resize事件
方法是在窗体设计器,选中窗体空白,右边的属性窗格,切换到闪电图标,找到Resize,下拉,选择Form1_Resize

  • 这篇博客: WinForm常用控件中的 2 添加(重写)窗口尺寸变动函数Form1_Resize 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • private void Form1_Resize(object sender, EventArgs e)
    {
        if (this.WindowState == FormWindowState.Minimized)    //最小化到系统托盘
        {
            NotifyIcon1.Visible = true;    //显示托盘图标
            this.Hide();    //隐藏窗口
        }
    }
    
  • 以下回答由chatgpt基于相关博客总结生成:

    可以使用C# winForm中的Resize事件来处理窗体大小改变的事件。在该事件中可以编写相应的代码来实现对窗体大小改变的响应。

    具体的解决方案如下:

    1. 打开C# winForm窗体的设计视图,在窗体属性窗口中找到事件选项卡。

    2. 在事件选项卡中找到Resize事件,并双击该事件。这时会自动在代码文件中生成相应的事件处理函数。

    3. 在事件处理函数中编写相应的代码来响应窗体大小的改变。例如,可以根据窗体大小的变化来改变控件的位置和大小,或者对窗体大小变化进行一些特定的处理。

    下面是一个示例代码,可以在窗体大小改变时将窗体中的一个文本框控件自动调整为窗体的中央位置:

    private void Form1_Resize(object sender, EventArgs e)
    {
        textBox1.Left = (this.ClientSize.Width - textBox1.Width) / 2;
        textBox1.Top = (this.ClientSize.Height - textBox1.Height) / 2;
    }
    

    在这个示例代码中,使用了窗体的ClientSize属性来获取窗体的实际客户区大小,然后通过一些计算来确定文本框控件的位置,从而实现了窗体大小变化时的动态调整。

    需要注意的是,如果窗体被最小化了,需要使用WindowState属性来判断当前的窗口状态,以便进行相应的处理。例如,可以将窗体隐藏并在系统托盘中显示一个图标。具体代码可以参考上面的参考资料中的示例代码。