gpt4 book ai didi

c# - TextRenderer.MeasureText() 和文本框最大文本长度

转载 作者:行者123 更新时间:2023-11-30 18:27:46 28 4
gpt4 key购买 nike

我有一个长字符串(约 10 万个字符)。我需要知道这个字符串的长度。我叫

Size s = TextRenderer.MeasureText(graphics, text, font);

但它返回宽度等于 7。只有当文本长度 <= 43679 时它返回正确的值!

另外,如果我在文本框中插入文本,文本在文本框中是不可见的!我可以用鼠标选择文本,通过“Ctrl+C”复制,但文本不可见。 MaxLength 属性大于文本长度。

我查看了 msdn,但没有找到有关 MeasureText 和 TextBox 中使用的最大文本长度的任何信息。

我在哪里可以找到关于此的文档?有没有办法增加最大文本长度?这些值是否取决于操作系统和计算机性能?

最佳答案

尝试使用此代码测量字符串,textrenderer 不准确

protected int _MeasureDisplayStringWidth ( Graphics graphics, string text, Font font )
{
if ( text == "" )
return 0;

StringFormat format = new StringFormat ( StringFormat.GenericDefault );
RectangleF rect = new RectangleF ( 0, 0, 1000, 1000 );
CharacterRange[] ranges = { new CharacterRange ( 0, text.Length ) };
Region[] regions = new Region[1];

format.SetMeasurableCharacterRanges ( ranges );
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;

regions = graphics.MeasureCharacterRanges ( text, font, rect, format );
rect = regions[0].GetBounds ( graphics );

return (int)( rect.Right );
}

归功于problem with TextRenderer.MeasureText

除此之外,还尝试对长字符串使用 stringbuilder,然后甚至将字符串拆分为更小的字符串并测量它们并将它们加在一起

关于c# - TextRenderer.MeasureText() 和文本框最大文本长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26250761/

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