使用 C# 动态更改一个 WinForm 中所有控件的字体大小

Dynamically Change Font Size of All Controls in One WinForm Use C#

我是 C# 的新手,目前,我需要在 Windows 表单中添加动态字体大小更改功能,其中有两个按钮,一个用于增加字体大小,另一个用于减小字体大小。

我能找到的调用所有控件的最接近的解决方案是 post, How to get ALL child controls of a Windows Forms form of a specific type (Button/Textbox)?,但是这个post是获取特定类型的控件,希望不管是什么类型的控件,都可以调用所有的控件,改变字体大小。

这个想法可行吗?任何想法都会非常有帮助。提前致谢!

后来我想通了,我可以只使用 this.Controls 来引用同一个 winForm

中的所有控件

如果想通过点击按钮改变字体大小,可以参考以下代码:

private void increaseBtn_Click(object sender, EventArgs e)
{
    foreach (Control c in this.Controls)
    {
        int size = (int)c.Font.Size;
        c.Font = new Font("Microsoft Sans Serif", ++size);
    }
}
private void disincreaseBtn_Click(object sender, EventArgs e)
{
    foreach (Control c in this.Controls)
    {
        int size = (int)c.Font.Size;
        c.Font = new Font("Microsoft Sans Serif", --size);
    }
}

测试结果如下: