20

.NET RichTextBox の既定のタブ サイズを変更する方法はありますか? 現在、私の好みではかなり大きい8スペースに相当するように設定されているようです.

編集:明確にするために、「\ t」表示のグローバルデフォルトをコントロールの4つのスペースとして設定したいと思います。私が理解できることから、SelectionTabs プロパティでは、最初にすべてのテキストを選択し、次に配列を介してタブ幅を選択する必要があります。必要に応じてこれを行いますが、可能であれば、毎回変更する必要がないように、グローバルデフォルトを一度だけ変更したいと思います。

4

5 に答える 5

24

これは、 SelectionTabsプロパティを設定することで設定できます。

private void Form1_Load(object sender, EventArgs e)
{
    richTextBox1.SelectionTabs = new int[] { 100, 200, 300, 400 };
}

更新:
シーケンスは重要です....

コントロールのテキストが初期化される前にタブを設定した場合、タブを設定する前にテキストを選択する必要はありません。

たとえば、上記のコードでは、元の 8 つのスペース タブ ストップを含むテキストが保持されます。

richTextBox1.Text = "\t1\t2\t3\t4";
richTextBox1.SelectionTabs = new int[] { 100, 200, 300, 400 };

しかし、これは新しいものを使用します:

richTextBox1.SelectionTabs = new int[] { 100, 200, 300, 400 };
richTextBox1.Text = "\t1\t2\t3\t4";
于 2008-09-30T18:09:37.970 に答える
5

Winforms には、RichTexBox の既定のタブ サイズを単一の数値で設定するプロパティはありませんが、リッチ テキスト ボックスの Rtf を掘り下げて変更する準備ができている場合は、次のように使用できる設定があります。 "\deftab". 後ろの数字は twip の数を表します (1 ポイント = 1/72 インチ = 20 twip)。標準タブ サイズ 720 twip の結果の Rtf は、次のようになります。

{\rtf1\ansi\ansicpg1252\deff0\deflang2057\deftab720{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}}
\viewkind4\uc1\pard\f0\fs41
1\tab 2\tab 3\tab 4\tab 5\par
}

twip をピクセルに変換する必要がある場合は、Convert Pixels to Pointsからヒントを得た次のコードを使用します。

int tabSize=720;
Graphics g = this.CreateGraphics();
int pixels = (int)Math.Round(((double)tabSize) / 1440.0 * g.DpiX);
g.Dispose();
于 2012-01-09T10:29:26.600 に答える
1

固定ピッチ テキストの表示 (読み取り専用) のみに使用される RTF ボックスがある場合、最も簡単な方法は、タブ ストップをいじらないことです。それらのものをスペースに置き換えるだけです。

ユーザーが何かを入力し、その Tab キーを使用して先に進むことができるようにする場合は、OnKeyDown()代わりにスペースをオーバーライドして印刷することで Tab キーをキャプチャすることもできます。

于 2013-08-23T09:36:03.100 に答える