如何使用c#在RTF中格式化?

如何使用c#在RTF中格式化?,c#,rtf,C#,Rtf,我在richTextBox控件中有以下文本 我想格式化文本如下文本 这就是我要做的。(这些是手动步骤:) 1) .打开MSWord 2) .创建一个表;2列5行(用于文本) 3) 。将要格式化的文本放入表格中,以更正单元格 4) 。将Word文档另存为rtf文件 5) 。在记事本中打开rtf文件(记事本++更好) 就在那里。。现在您可以找到它的格式。现在用C语言来做应该不难。祝你好运。RTF框在这里可以帮助你,使用RTF的唯一帮助将是使用Kosala提到的表格 您可以使用以下字符串操作: in

我在richTextBox控件中有以下文本

我想格式化文本如下文本

这就是我要做的。(这些是手动步骤:)

1) .打开MSWord

2) .创建一个表;2列5行(用于文本)

3) 。将要格式化的文本放入表格中,以更正单元格

4) 。将Word文档另存为rtf文件

5) 。在记事本中打开rtf文件(记事本++更好)


就在那里。。现在您可以找到它的格式。现在用C语言来做应该不难。祝你好运。

RTF框在这里可以帮助你,使用RTF的唯一帮助将是使用Kosala提到的表格

您可以使用以下字符串操作:

int equalPos = 20;
for (int l = 0; l < rtfBox.Lines.Length; l++) {
    int i = rtfBox.lines[i].IndexOf('=');
    int n = equalPos - i;
    if ((i >= 0) && (n > 0)) {
        rtfBox.lines[i] = rtfBox.lines[i].Insert(i, new string(' ', n));
    }
}
int equalPos=20;
对于(int l=0;l=0)和&(n>0)){
rtfBox.lines[i]=rtfBox.lines[i]。插入(i,新字符串(“”,n));
}
}
这是从head写的,所以请检查错误

编辑:
好的,这里还有一个:

for (int l = 0; l < rtfBox.Lines.Length; l++) {
    int i = rtfBox.lines[i].IndexOf('=');
    if (i >= 0) {
        rtfBox.lines[i] = rtfBox.lines[i].Insert(i, "\t");
    }
}
rtfBox.SelectAll();
rtfBox.SelectionTabs = new int[] { 100 };  // Find a value big enough!
for(int l=0;l=0){
rtfBox.lines[i]=rtfBox.lines[i]。插入(i,“\t”);
}
}
rtfBox.SelectAll();
rtfBox.SelectionTabs=newint[]{100};//找到一个足够大的值!

您想以编程方式执行此操作吗?我想用c#以编程方式执行此操作。文本的来源是什么?它总是一样的,还是一个文件还是…?动态文本,但输入文本是那样的格式。我尝试过这种代码,但格式不准确,因为字符宽度在像素上是不同的。如果你想要精确的列宽,你必须使用具有相同字符大小的字体。在屏幕截图中,您使用了Consolas,它的字符宽度相等。这是richtextbox,因此最终用户可以更改字体名称和大小。请使用第二个代码,而不是将
'
替换为
'\t'