RichTextBox
フォーム上にコントロールを持つ WinForms アプリケーションがあります。現在、AcceptsTabs
プロパティを true に設定しているので、Tabがヒットするとタブ文字が挿入されます。
私がやりたいのは、Tabヒットしたときにタブ文字の代わりに 4 つのスペースが挿入されるようにする\t
ことです (私は等幅フォントを使用しています)。これどうやってするの?
RichTextBox
フォーム上にコントロールを持つ WinForms アプリケーションがあります。現在、AcceptsTabs
プロパティを true に設定しているので、Tabがヒットするとタブ文字が挿入されます。
私がやりたいのは、Tabヒットしたときにタブ文字の代わりに 4 つのスペースが挿入されるようにする\t
ことです (私は等幅フォントを使用しています)。これどうやってするの?
をオーバーライドする新しいクラスを追加しますRichTextBox
。
class MyRichTextBox : RichTextBox
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if(keyData == Keys.Tab)
{
SelectionLength = 0;
SelectedText = new string(' ', 4);
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
その後、新しいコントロールをフォームのデザイン ビューにドラッグできます。
注: @LarsTec の回答とは異なり、AcceptsTab
ここでは設定は必要ありません。