我們凱普斯組設計設計大綱模板,其中一個要求是能夠添加和刪除相若方式運作到Microsoft Word可調整大小的表精簡的文本編輯器(rtf)表,它們必須通過「拖動」以及可定製的字體等來調整大小。 它們還必須放置在RichTextBox中,或者至少以可以在常規文本和帶文本的單元格之間輕鬆轉換的方式。添加可調整大小的表到一個RichTextBox(.NET或C#)
我們採用不同的方法,包括TableLayoutPanel中(不,因爲它不能在RichTextBox的直接放在工作)嘗試,我們發現使用Stringbuilder最接近的,但是這仍然不能準確地工作,因爲細胞不能調整大小,而字符串本身很難操作。我們還需要「合併單元格」的能力。
我們試圖在.NET和C#設計,但是結果是相似的。如果任何人有任何建議如何工作這個計劃,我將不勝感激。這是創建表的代碼:
Private Sub tsbTwoRows_Click(sender As Object, e As EventArgs) Handles tsbTwoRows.Click
Dim rtbTemp As New RichTextBox
Dim sbTaRtf As New System.Text.StringBuilder
'These strings are necessary so that it will be visible in MS Word
sbTaRtf.Append("{\rtf1\fbidis\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}{\f1\fnil\fcharset0 Microsoft Sans Serif;}}")
sbTaRtf.Append("\viewkind4\uc1\trowd\trgaph108\trleft5\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 ")
sbTaRtf.Append("\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs")
sbTaRtf.Append("\cellx4678") 'set the width of the first cell
sbTaRtf.Append("\clbrdrt\brdrw15\brdrs\clbrdrl\brdrw15\brdrs\clbrdrb\brdrw15\brdrs\clbrdrr\brdrw15\brdrs")
sbTaRtf.Append("\cellx9355") 'set the width of the second cell
sbTaRtf.Append("\pard\intbl\ltrpar\sl252\slmult1\lang3082\f0\fs22\cell\cell\cell\row")
sbTaRtf.Append("\pard\ltrpar\lang1033\f1\fs17\par")
sbTaRtf.Append("}")
rtbTemp.Rtf = sbTaRtf.ToString()
'This prevents the new table from deleting the text
rtbContent.SelectedRtf = rtbTemp.Rtf
rtbTemp.Undo()
Me.rtbContent.Focus()
Me.rtbContent.SelectionStart = Me.rtbContent.SelectionStart - 1
Me.rtbContent.SelectionLength = 0
End Sub