首页 > 解决方案 > 在 WinForm RichTextBox 中插入表格时如何将插入符号放在第一个单元格中

问题描述

我正在制作一个不高级的文本编辑器,它的一个功能是插入一个简单的表格。

那时我可以插入表格和having the caret in the first cell表格,但最近我更新了我的 Windows 8.1,而且我还获得了 .net 的安全更新。

昨天我继续我的项目,并意识到在我插入一个表格后,插入符号不再设置在第一个单元格中,而是在富文本框的顶部index = 0。我不知道.NET 的更新是否与此有关。

表格插入代码:

var cellWidth = -1;
var rtf = new StringBuilder();
rtf.Append(@"{\rtf1 ");

cellWidth = 1000;
if (AutoSize)
{
   cellWidth = ((note_txt.ClientSize.Width - 3) / row) * 15;
}
for (int i = 0; i < col; i++)
{
    rtf.Append(@"\trowd");
    for (int j = 1; j <= row; j++)
    rtf.Append(@"\cellx" + (j * cellWidth));
    rtf.Append(@"\intbl \cell \row"); //create row
}
rtf.Append(@"\pard");
rtf.Append(@"}");

var rtf1 = rtf.ToString();
note_txt.SelectedRtf = rtf1;

然后我把这个

note_txt.SelectionStart = note_txt.Rtf.IndexOf(@"{\rtf1");

但是当我放一个刹车点时,我可以看到SelectionStart = 0在那条线之后。为什么它停止在第一个单元格中使用插入符号。

表格成功插入,但是插入符号集是我遇到问题的地方,有没有办法将插入符号放在第一个单元格中,或者只是让它在表格之后设置?

标签: c#winformsrichtextboxrtfcaret

解决方案


推荐阅读