Delete

Line No: 0
Line No: 1
Line No: 2
Line No: 3
Line No: 4
Line No: 5
Line No: 6
Line No: 7
Line No: 8
Line No: 9

RichTextBox から文字列を削除します。
Line No: 0
Line No: o: 2
Line No: 3
Line No: 4
Lin5
Line No: 6
Line No: 7
Line No: 8
Line No: 9
RichTextBox から行を削除します。
Line No: 0
Line No: 1
Line No: 2
Line No: 6
Line No: 7
Line No: 8
Line No: 9

前田稔(Maeda Minoru)の超初心者のプログラム入門

文字列の削除

  1. RichTextBox には TextEditor を作成する上で便利な機能が備わっています。
    その幾つかを紹介しています。
    RichTextBox に格納されているテキストから文字列を削除します。
  2. Visual Studio を起動してベースとなるプロジェクトファイルを開いて下さい。
    詳細は RichTextBox を参照して下さい。
    ツールボックスからフォームに RichTextBox を貼り付けます。
  3. MyForm の Constructor を次のように書き換えて下さい。
    richTextBox1.AppendText("Line No: " + line + "\n") で10行のテキストを設定します。
    そこから Remove() で20文字目から8文字と50文字目から6文字を削除して表示します。
        public MyForm()
        {
            InitializeComponent();
    
            for(int line= 0; line<10; line++)
            {
                richTextBox1.AppendText("Line No: " + line + "\n");
            }
    
            richTextBox1.Text = richTextBox1.Text.Remove(20, 8);
            richTextBox1.Text = richTextBox1.Text.Remove(50, 6);
        }
    
  4. コンパイルして実行すると文字列を削除したテキストが表示されます。
    Line No: 0
    Line No: o: 2
    Line No: 3
    Line No: 4
    Lin5
    Line No: 6
    Line No: 7
    Line No: 8
    Line No: 9
    

行の削除

  1. 行の削除も GetFirstCharIndexFromLine() で行の先頭位置を求めることを除けば、文字列の削除と同じ要領です。
    3行目~5行目を削除してみましょう。
    GetFirstCharIndexFromLine(3); で3行目の先頭位置を求めます。
    GetFirstCharIndexFromLine(6); で6行目の先頭位置を求めます。
    6行目から3行目を引いた値が、削除する文字数です。
        public MyForm()
        {
            InitializeComponent();
    
            for(int line= 0; line<10; line++)
            {
                richTextBox1.AppendText("Line No: " + line + "\n");
            }
    
            int st_idx = richTextBox1.GetFirstCharIndexFromLine(3);
            int nx_idx = richTextBox1.GetFirstCharIndexFromLine(6);
            richTextBox1.Text = richTextBox1.Text.Remove(st_idx, nx_idx-st_idx);
        }
    
  2. コンパイルして実行すると行を削除したテキストが表示されます。
    Line No: 0
    Line No: 1
    Line No: 2
    Line No: 6
    Line No: 7
    Line No: 8
    Line No: 9
    

【NOTE】

Lines[].Remove() で行を削除出来そうな気もしますが、行の削除には使えないようです。
この関数は、指定された行の文字列を削除するときに使います。
richTextBox1.Lines[3] は string[] 配列の3番目(4行目)を意味します。
例えば次の命令を実行すると、4行目の0番目から2文字を削除した文字列が取得出来ます。
string str = richTextBox1.Lines[3].Remove(0,2);

超初心者のプログラム入門(C# Frame Work)