私はTextBoxを使用して非常に単純なテキスト/コードエディタを構築しようとしています。最後の行をインデントしたままにしておきたいと思います。ですから、最後の行からこの行にインデントを引き継ぐ方法が必要です。私はthis answerを見ましたが、それはそれをカットしていないようです。その後、タイプ4つのスペースを入力するタイプ、何らかの理由で、それをwinformでオートインデントを取得する方法TextBox(またはRichTextBox)C#?
class SpaceBox : TextBox
{
public static int spaces = 4;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Tab)
{
this.SelectionLength = 0;
this.SelectedText = new string(' ', spaces);
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
protected override void OnKeyDown(KeyEventArgs e)
{
//base.OnKeyDown(e);
if (e.KeyCode == Keys.Enter)
{
this.Text += "\n";
this.Text += new string(' ', spaces);
this.SelectionStart = this.Text.Length;
return;
}
base.OnKeyDown(e);
}
}
しかし:私はこれを試してみました。上の例で正しい軌道にいますか?
お返事ありがとうございます。
ようこそ。 SOはコーディングサービスではありません。あなたの質問を再構成して、あなたの研究は何であり、これまでに何を試みましたかを示してください。 [良い質問をする方法]を見てください。(http://stackoverflow.com/help/how-to-ask) –
http://stackoverflow.com/questions/20217407/auto -ind-a-new-line-made-made – user319785
何が問題なのですか?固定4の代わりに可変数のスペースを引き継ぐには?あなたは最後の行の先頭にあるスペースを数える必要があります。リッチテキストボックス内の行番号、文字位置などを取得するための多くの便利な機能があります。 – TaW