c# - AutoSized 文本框中的屏幕闪烁
问题描述
MeasureString
我有一个 AutoSized 文本框,它使用以下代码根据其中的文本调整其大小:
private void txt_TextChanged(object sender, EventArgs e)
{
int xold = txt.Width;
SizeF MessageSize = txt.CreateGraphics().MeasureString(txt.Text,txt.Font);
txt.Width = (int)MessageSize.Width + txt.Margin.Left;
decimal hei = Math.Ceiling((decimal)MessageSize.Height);
int h = (int)hei;
txt.Height = h;
int xnew = txt.Width;
if(xold > xnew) { txt.Left += xold - xnew; }
else { txt.Left -= xnew - xold; }
if (txt.Width == 0) MainPanel.Controls.Remove(txt);
}
它位于具有背景图像的面板上,因此当我开始输入时,它开始闪烁很多。我尝试启用 DoubleBufferdForm_Properties
并尝试修复它:
protected override CreateParams CreateParams
{
get
{
var parms = base.CreateParams;
parms.Style &= ~0x02000000;
return parms;
}
}
它似乎没有帮助,任何想法都赞赏如何在文本框中输入时避免闪烁。谢谢 !
解决方案
推荐阅读
- reactjs - 启动项目时出现反应脚本错误
- flutter - 扑。前景模糊效果背景视图
- node.js - 如何像 Google 文档一样在 quill 编辑器中执行跟踪更改?
- react-native - 无法在本机反应中读取未定义的属性“导航”这在应用程序 js 中正常工作,但在 about js 中却没有
- python - Spyder Editor - 如何禁用自动闭合括号
- python - 像 Jupyter 一样使用 Atom
- php - 如何将 MCRYPT 路径设置回 MAMP Pro
- c# - 在 .NET Framework 中将 Async/await 和 SqlDataReader 与 ExecuteReaderAsync 一起用于 ASMX Web 服务时出错
- angular - Angular 8 语言转换与谷歌 api.english 到印地语转换
- python - 如何修复我的第一个 python 代码?名称错误,未定义类名