HeyCHのブログ

慢性疲労のへいちゃんです

【C#】RichTextBoxって何よ

RichTextBoxは簡単に言えば、文字書式を設定できるテキストボックスです。
デフォルトの状態で、「http://~~~」等を自動的にリンクにしてくれる機能もあります。
f:id:HeyCH:20200422001150p:plain

サンプルコード

以下のコードを書く事で

  • 書式設定ボタンを押した時、押した直前のカーソル位置の書式を変更します。(カーソルの位置からテキストを入力すると書式が変更される)
  • 任意のテキストを選択した状態で書式設定ボタンを押すと書式が設定される。
  • 戻すボタンを押すと、書式がデフォルトの状態に戻る(初期状態でテキストを入力した状態とは異なる。なんで異なるのかは不明)
  • リンクをクリックするとMessageBoxが表示される。
        Font defFont;
        Color defBackColor;
        Color defColor;
        public Form1() {
            InitializeComponent();
            defFont = richTextBox1.SelectionFont;
            defBackColor = richTextBox1.SelectionBackColor;
            defColor = richTextBox1.SelectionColor;
        }

        private void button1_Click(object sender, EventArgs e) {
            richTextBox1.SelectionBackColor = Color.Yellow;
            richTextBox1.SelectionColor = Color.Red;
            Font f = new Font(defFont, FontStyle.Bold);
            richTextBox1.SelectionFont = f;
        }

        private void button2_Click(object sender, EventArgs e) {
            richTextBox1.SelectionBackColor = defBackColor;
            richTextBox1.SelectionColor = defColor;
            richTextBox1.SelectionFont = defFont;
        }

        private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e) {
            MessageBox.Show(e.LinkText + "がクリックされました。");
        }