问题描述
我有一个自动调整大小的文本框,它使用以下代码根据其中文本的 MeasureString
调整其大小:
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);
}
它位于具有背景图像的面板上,因此当我开始输入时,它开始闪烁很多。
我尝试从 Form_Properties
启用 DoubleBufferd 并尝试修复它:
protected override CreateParams CreateParams
{
get
{
var parms = base.CreateParams;
parms.Style &= ~0x02000000;
return parms;
}
}
而且它似乎没有帮助,任何想法都赞赏如何在文本框中键入时避免闪烁。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)