2016-05-03 5 views
1

私はこれで一日中これを続けてきました。私は列のヘッダーを入れないと、どのように私は、テキストを中央揃えするにはどうすればよいこの時点Rtfを使用してリッチテキストボックスにテーブルを作成

var tableRtf = new StringBuilder(); 

     tableRtf.Append(@"{\rtf1 "); 
     tableRtf.Append(@"{\rtf1\pc \qc \b SOME NAME \b0 \par}"); 
     tableRtf.Append(@"{\rtf1\pc \qc SOME TYPE \par}"); 
     tableRtf.Append(@"{\rtf1\pc \qc SOMEWHERE IN THE CITY, SOMETHING ADDRESS, SOMETHING CITY \par}"); 
     tableRtf.Append(@"{\rtf1\pc \qc TEL. NUM. 1234567 \par}"); 
     tableRtf.Append(@"{\rtf1\pc \qc VAT-REG TIN 200-035-311-0010 \par}"); 
     tableRtf.Append(@"{\rtf1\pc \par}"); 

     for (var i = 0; i < listOrderedItems.Items.Count; i++) 
      { 
       var x = listOrderedItems.Items[i].Text; 
       var y = listOrderedItems.Items[i].SubItems[3].Text; 
       var q = listOrderedItems.Items[i].SubItems[2].Text; 

       tableRtf.Append(@"\trowd"); 

       //A cell with width 4000. 
       tableRtf.Append(@"\cellx4000"); 
       //Another cell with width 1000 
       tableRtf.Append(@"\cellx5000"); 
       //Another cell with width 1000 
       tableRtf.Append(@"\cellx6000"); 

       tableRtf.Append(String.Format(@"\intbl {0} \cell {1} \cell {2} \cell \row",x,q,y)); //create row 

      } 

      tableRtf.Append(@"\pard"); 

      tableRtf.Append(@"}"); 

      this.txtReceipt.Rtf = tableRtf.ToString(); 

に得ている

ITEMS     | QTY | Amount |  
Sample 1    | 1 | 100.00 | 
Another Sample Here | 3 | 300.00 | 
And A Sample Here  | 4 | 400.00 | 

:私は、これらの列でリッチテキストボックス内のテーブルを持っているしたいと思います2番目と3番目の列のみ?あなたの助けが大変ありがとうございます。

+0

をチェックアウト - たとえばCourierは新しい、見つけますある列のデータの最長のビットが1つになり、それから 'String.PadRight(int totalWidth)'で偽のテーブルを作成してすべての値を整列させます。これで、各パディングされた列の間にセパレータを追加することができます –

+0

あなたの提案は良いとは言いますが、それはすでに私にとっては複雑すぎるかもしれません。私は初心者です。私は自分のコードを理解しており、それは私に正しい出力を与えます。ヘッダータイトルを付け、列の値を中央に置くことで、私はそれをより良くすることができます。 – Ibanez1408

答えて

-1

列ヘッダーを直接ハードコードすることも、列ヘッダーとデータをDataTableのデータをRichTextBoxコントロールの作成されたテーブルに挿入することもできます。

例:dtblは、リッチテキストボックステーブルに転送できるデータテーブルです。 tableRtfはテキスト文字列です。詳細については

for (int i = 0; i <dtbl.Columns.Count; j++) 
{ 
    //A cell with width 1000. 
    tableRtf.Append(@"\cellx" + ((i+1) * 1000).ToString()); 

    if (i == 0) 
    tableRtf.Append(@"\intbl " + dtbl.Columns[i].ColumnName); 
    else 
    tableRtf.Append(@"\cell " + dtbl.Columns[i].ColumnName); 
    } 

自体ソリューションとは対照的に、これは別の提案ですが、モノラル間隔のフォントでテキストを置くことができ、リンクadd text to created table Richtextbox

関連する問題