C# RichTextBox中的测量

C# RichTextBox中的测量,c#,.net,ms-word,vsto,C#,.net,Ms Word,Vsto,我需要在垂直scroolbar可见时获取rtb的最后一行 WordWrap是真的 我准备好了一个方法,告诉我阴囊何时可见 我测量了最后一行的字符串,并将其与宽度进行了比较>所有较大的都在最后一行。我的问题是,当它到达中间时,它说它已经到达终点 这是我的密码: float sum = 0; int zeichen = 0; Graphics g = rtb.CreateGraphics(); g.PageUnit = GraphicsUnit.Pixel; for (int i = 0; i &l

我需要在垂直scroolbar可见时获取rtb的最后一行

WordWrap是真的

我准备好了一个方法,告诉我阴囊何时可见

我测量了最后一行的字符串,并将其与宽度进行了比较>所有较大的都在最后一行。我的问题是,当它到达中间时,它说它已经到达终点

这是我的密码:

float sum = 0;
int zeichen = 0;
Graphics g = rtb.CreateGraphics();
g.PageUnit = GraphicsUnit.Pixel;
for (int i = 0; i < rtb.Lines[rtb.Lines.Length - 1].Length && sum < rtb.Width; i++)
{
    zeichen = i;
    rtb.Select(rtb.GetFirstCharIndexFromLine(rtb.Lines.Length - 1) + i, 1);
    sum = sum + g.MeasureString(rtb.SelectedText, rtb.SelectionFont).Width;
}
string s = rtb.Text.Substring(zeichen);
rtb.Text = rtb.Text.Substring(0, zeichen);
SelectionFont=new System.Drawing.FontFB,10

rtb.width=605


谢谢:

两个问题:您是否测试过测量单个字符的宽度是否真的等于测量整个单词或更长字符串的宽度?我不知道RTB是否在所有或任何字体上都应该进行紧排,但知道这一点会很有趣。其次,我假设您考虑了更改的包装,这是由滚动条的外观触发的,滚动条需要空间,必须从文本区域获取空间,对吗?