英語で読む

次の方法で共有


方法: 描画されたテキストにタブ ストップを設定する

テキストにタブ ストップを設定するには、SetTabStops オブジェクトの StringFormat メソッドを呼び出し、その StringFormat オブジェクトを DrawString クラスの Graphics メソッドに渡します。

注意

System.Windows.Forms.TextRenderer フラグを使用して既存のタブ ストップを拡張することはできますが、TextFormatFlags.ExpandTabs は、描画されたテキストへのタブ ストップの追加をサポートしていません。

次の例では、タブ ストップを 150、250、350 に設定します。 次に、このコードにより、名前とテスト スコアのタブ付きリストが表示されます。

次の図は、タブ付きテキストを示します。

名前とスコアのタブ付きリストを示すスクリーンショット。

次のコードでは、SetTabStops メソッドに 2 つの引数を渡します。 2 つ目の引数は、タブのオフセットを含む配列です。 SetTabStops に渡された最初の引数は 0 です。これは、配列の最初のオフセットが、四角形領域の左端である 0 の位置から計測されていることを示しています。

string text = "Name\tTest 1\tTest 2\tTest 3\n";
text = text + "Joe\t95\t88\t91\n";
text = text + "Mary\t98\t84\t90\n";
text = text + "Sam\t42\t76\t98\n";
text = text + "Jane\t65\t73\t92\n";

FontFamily fontFamily = new FontFamily("Courier New");
Font font = new Font(
   fontFamily,
   12,
   FontStyle.Regular,
   GraphicsUnit.Point);
Rectangle rect = new Rectangle(10, 10, 450, 100);
StringFormat stringFormat = new StringFormat();
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
float[] tabs = { 150, 100, 100, 100 };

stringFormat.SetTabStops(0, tabs);

e.Graphics.DrawString(text, font, solidBrush, rect, stringFormat);

Pen pen = Pens.Black;
e.Graphics.DrawRectangle(pen, rect);

コードのコンパイル

  • 前の例は、Windows フォームで使用するために設計されていて、PaintEventArgs のパラメーターである ePaintEventHandler を必要とします。

関連項目


その他のリソース

ドキュメント