gpt4 book ai didi

c# - 更改控件的字体时是否应该处理旧字体?

转载 作者:行者123 更新时间:2023-11-30 16:55:43 26 4
gpt4 key购买 nike

C#、Windows 窗体应用。

我们正在重新设计我们的应用程序,我还更改了我们在旧应用程序中使用的可怕的默认字体。所以我想我会调用以下函数来在加载窗体时更改窗体上所有控件的字体。

  internal static void SetFonts(Control control)
{
Font oldFont = control.Font;
if (oldFont.Name != GlobalFontName)
{
string familyName = GlobalFontName;
Font newFont = new System.Drawing.Font(familyName,
oldFont.Size, oldFont.Style, GraphicsUnit.Point, 0);
control.Font = newFont;
//oldFont.Dispose();
}
foreach (Control child in control.Controls)
SetFonts(child);
}

我认为如果我在用新字体重新分配控件后处理掉旧字体会减少资源,但在关闭窗体时我收到来自一组第三方控件的一种控件类型的访问冲突异常。如果我注释掉“oldFont.Dispose()”这一行,那么我不会得到异常。

这是第三方控制集的错误还是意料之中?
内存方面,我可以不明确处理旧字体而逃脱吗(该应用程序每天在自助服务亭上运行 12 小时以上)?

最佳答案

不要处理 旧字体,这是您要更改其字体的控件的工作。此外,使用 GDIView 等工具来监控您的句柄(例如字体)。

关于c# - 更改控件的字体时是否应该处理旧字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29103522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com