我在richtextbox
创建了一个表格,如下所示:
//Since too much string appending go for string builder
StringBuilder tableRtf = new StringBuilder();
//beginning of rich text format,dont customize this begining line
tableRtf.Append(@"{\rtf1 ");
//create 5 rows with 3 cells each
for (int i = 0; i < 5; i++)
{
tableRtf.Append(@"\trowd");
//A cell with width 1000.
tableRtf.Append(@"\cellx1000");
//Another cell with width 2000.end point is 3000 (which is 1000+2000).
tableRtf.Append(@"\cellx2000");
//Another cell with width 1000.end point is 4000 (which is 3000+1000)
tableRtf.Append(@"\cellx3000");
//Another cell with width 1000.end point is 4000 (which is 3000+1000)
tableRtf.Append(@"\cellx4000");
tableRtf.Append(@"\intbl \cell \row"); //create row
}
tableRtf.Append(@"\pard");
tableRtf.Append(@"}");
this.misc_tb.Rtf = tableRtf.ToString();
现在我想知道如何将文本放在标题和每个单元格中。
你有什么想法吗?
答案 0 :(得分:0)
如果要动态插入文本,则应声明DataTable,例如: DataTable dt,您可以使用dt动态更改数据。每次更改后应该渲染到tableRtf并设置为misc_tb.Rtf表tableRtf。 除此之外,您应该定义单元格位置(使用类似IndexOf方法)并插入位置文本。
<强>更新强> 也许theese链接会帮助你:
http://www.codeproject.com/Articles/11306/NRTFTree-A-class-library-for-RTF-processing-in-C
RtfTable类中的有cell(int row,int col)方法,确定它会有帮助
答案 1 :(得分:0)
在您的代码中添加AppendLine以添加文本。 我希望它能起作用
tableRtf.Append(@"\cellx1000").AppendLine(" ID");
tableRtf.Append(@"\cellx2000").AppendLine(" First Name");
tableRtf.Append(@"\cellx3000").AppendLine(" Lastname");
tableRtf.Append(@"\cellx4000").AppendLine(" Salary");
答案 2 :(得分:0)
您可以将文本放在循环的最后一行,即:
tableRtf.Append(@"\intbl \cell \row");
在上述示例中,每行有3个单元格。因此,您应该将文本放在\ intbl和\ row之间。例如:
tableRtf.Append(@"\intbl MyText1 \cell MyText2 \cell MyText3 \cell \row");
答案 3 :(得分:0)
我们可以用硬编码数据填充单元格,如下面3行填充数据:
var reader = new FileReader();
reader.onloadend = function (evt) {
var blob = new Blob([evt.target.result], { type: "image/jpeg" });
var storageUrl = 'noticias/imagenes/';
var storageRef = firebase.storage().ref(storageUrl + file.name);
console.warn(file); // Watch Screenshot
var uploadTask = storageRef.put(blob);
}
reader.onerror = function (e) {
console.log("Failed file read: " + e.toString());
};
reader.readAsArrayBuffer(file);
也可以在循环中将DataTable数据插入RichTextBox表,对于这些示例,请参阅链接Add text in a created table in a richtextbox
答案 4 :(得分:0)
加上行中的数据
StringBuilder tableRtf = new StringBuilder();
tableRtf.Append(@"{\rtf1\fbidis\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}");
for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
{
tableRtf.Append(@"\trowd");
tableRtf.Append(@"\cellx2500" + " " + ds.Tables[0].Rows[j]["caption"].ToString());
tableRtf.Append(@"\intbl\cell");
tableRtf.Append(@"\cellx10000\intbl\cel");
tableRtf.Append(" "+ ds2.Tables[0].Rows[k][j].ToString() + @"\intbl\clmrg\cell\row");
}
tableRtf.Append(@"\pard");
tableRtf.Append(@"}");
richTextBox2.Rtf = tableRtf.ToString();