gpt4 book ai didi

winforms - 如何确定 RichTextBox 中最后一行的文本高度?

转载 作者:行者123 更新时间:2023-12-04 05:46:42 24 4
gpt4 key购买 nike

我正在创建一个扩展的 RichTextBox 控件,我在文本行旁边绘制图标。我正在使用 GetPositionFromCharIndex 来查找当前行和下一行 Y 坐标,以便可以确定当前行的高度和中间位置。当遇到最后一行时,此方法显然停止工作,因为没有下一行。有没有办法确定最后一行文本的高度?请注意,字体大小可能因行而异。

最佳答案

不容易做到。也许有一个 API 调用,但我不是 100% 确定。

实现此目的的一种hacky 方法是使用屏幕外 RichTextBox 控件并将 RTF 属性传输给它,这恰好在末尾为您附加了一个额外的\par,因此现在有一个额外的行:

using (RichTextBox r = new RichTextBox()) {
r.SelectAll();
r.SelectedRtf = richTextBox1.Rtf;
for (int i = 1; i < r.Lines.Length; i++) {
Point p1 = r.GetPositionFromCharIndex(r.GetFirstCharIndexFromLine(i - 1));
Point p2= r.GetPositionFromCharIndex(r.GetFirstCharIndexFromLine(i));
int height = p2.Y - p1.Y;
MessageBox.Show(String.Format("Line #{0} height = {1}", i - 1, height));
}
}

关于winforms - 如何确定 RichTextBox 中最后一行的文本高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10588380/

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