winform如何动态在richtextbox里面添加表格
我希望在richtextbox里面动态添加表格,然后在表格内插入文本内容,我该如何做到
[最优解释]
(<cell>+ <tbldef> /row),
[其他解释]
st.Append(@"{\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\trowd\trgaph108\trleft180\trrh313\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl108\trpaddr108\trpaddfl3\trpaddfr3
\clbrdrl\brdrw10\brdrs\clbrdrt\brdrw10\brdrs\clbrdrr\brdrw10\brdrs\clbrdrb\brdrw10\brdrs \cellx1082\pard\intbl\nowidctlpar\qj\kerning2\f0\fs21\cell\row\pard\lang2052\kerning0\f1\fs18\par
}");
richTextBox1.Rtf = "{" + st.ToString() + "}";
}
后面那一段是我直接读出单个框的RTF复制进去的,我无法弄清楚这个表格的结构形式,如果手写该如何写,希望有高手能帮我读一下这两段代码做个解释,看看能不能在这个基础上山寨出我想要的东西
[其他解释]
网上查到的
StringBuilder st = new StringBuilder();
st.Append(@"\rtf1\fbidis\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
{\colortbl ;\red0\green0\blue0;}
\viewkind4\uc1\trowd\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10\brdrcf1 \trbrdrl\brdrs\brdrw10\brdrcf1 \trbrdrb\brdrs\brdrw10\brdrcf1 \trbrdrr\brdrs\brdrw10\brdrcf1 \clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1596\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3300\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5004\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx6709\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx8414\pard\intbl\ltrpar\kerning2\f0\fs21\cell\cell\cell\cell\cell\row
\intbl\cell\cell\cell\cell\cell\row
\intbl\cell\cell\cell\cell\cell\row
\intbl\cell\cell\cell\cell\cell\row
\pard\ltrpar\lang2052\kerning0\f1\fs18\par
");
richTextBox1.Rtf = "{" + st.ToString() + "}";
if ((long)moduleHandle < 0x20)
{
throw new Win32Exception(Marshal.GetLastWin32Error(), "Could not load Msftedit.dll");
}
}
CreateParams createParams = base.CreateParams;
createParams.ClassName = "RichEdit50W";
if (this.Multiline)
{
if (((this.ScrollBars & RichTextBoxScrollBars.Horizontal) != RichTextBoxScrollBars.None) &&
!base.WordWrap)
{
createParams.Style
[其他解释]
= 0x100000;
if ((this.ScrollBars & ((RichTextBoxScrollBars)0x10)) != RichTextBoxScrollBars.None)
{
createParams.Style
[其他解释]
= 0x200000;
if ((this.ScrollBars & ((RichTextBoxScrollBars)0x10)) != RichTextBoxScrollBars.None)
{
createParams.Style
[其他解释]
= 0x2000;
}
}
}
if ((BorderStyle.FixedSingle == base.BorderStyle) && ((createParams.Style & 0x800000) != 0))
{
createParams.Style &= -8388609;
createParams.ExStyle
[其他解释]
没人帮我看一下吗?
[其他解释]
rtf格式是有标准的,网上有很多资料。参考rtf文件、RTF文件格式研究报告