DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

RichTextBox内の文字列の一部を変更できないようにする

RichTextBoxのSelectionProtectedプロパティをTrueにすることにより、文字列の一部分を変更できないようにできます。なお、SelectionProtectedがTrueとなっている部分を変更しようとすると、RichTextBox.Protectedイベントが発生します。

次の例では、RichTextBox1に文字列を追加し、「ここは編集不可。」の部分を変更できないようにしています。また、この部分を変更しようとすると、メッセージボックスが表示されます。

VB.NET
コードを隠すコードを選択
Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load
    RichTextBox1.AppendText("こんにちは。")
    RichTextBox1.AppendText("ここは編集不可。")
    '"ここは編集不可。"を選択
    RichTextBox1.Select(RichTextBox1.Text.Length - 8, 8)
    '選択部分を保護する
    RichTextBox1.SelectionProtected = True
    RichTextBox1.AppendText("さようなら。")

    'Protectedイベントハンドラの追加
    AddHandler RichTextBox1.Protected, _
        AddressOf RichTextBox1_Protected
End Sub

Private Sub RichTextBox1_Protected( _
        ByVal sender As Object, ByVal e As EventArgs)
    '保護されている部分を編集しようとした時
    MessageBox.Show("そこは変更できません。")
End Sub
C#
コードを隠すコードを選択
private void Form1_Load(object sender, System.EventArgs e)
{
    RichTextBox1.AppendText("こんにちは。");
    RichTextBox1.AppendText("ここは編集不可。");
    //"ここは編集不可。"を選択
    RichTextBox1.Select(RichTextBox1.Text.Length - 8, 8);
    //選択部分を保護する
    RichTextBox1.SelectionProtected = true;
    RichTextBox1.AppendText("さようなら。");

    //Protectedイベントハンドラの追加
    RichTextBox1.Protected += new EventHandler(RichTextBox1_Protected);
}

private void RichTextBox1_Protected(object sender, EventArgs e)
{
    //保護されている部分を編集しようとした時
    MessageBox.Show("そこは変更できません。");
}

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • イベントハンドラの意味が分からない、C#のコードをそのまま書いても動かないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。