0

問題が発生しました。リッチ テキスト ボックスのテキストに色を付けています。タイマーがオンになっていると、すべてのテキストが水色に変わりました。しかし、別の色が必要です。コードは次のとおりです。

    private void Form1_Load_1(object sender, EventArgs e)
    {
        //richTextBox1.Font = new Font("Consolas", 18f, FontStyle.Bold);
        richTextBox1.BackColor = Color.AliceBlue;
        string[] words = { "Sachin tendulkas(40)", "Virendra sehwag(35)", "Dhoni", "Ramesh", "Saurov ganguly(39)", "Venkatesh prasad(44)" };
        Color[] colors =
               {
    Color.Aqua,
    Color.CadetBlue,
    Color.Cornsilk,
    Color.Gold,
    Color.HotPink,
    Color.Lavender,
    Color.Moccasin
    };

        for (int i = 0; i < words.Length; i++)
        {
            string word = words[i];
            Color color = colors[i];
            {
                richTextBox1.SelectionBackColor = color;
                richTextBox1.AppendText(word);
                //richTextBox1.SelectionBackColor = Color.AliceBlue;
                richTextBox1.AppendText(" ");
            }
        }
        timer1.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        string str1 = richTextBox1.Text;
        str1 = str1.Substring(1) + str1.Substring(0, 1);
        richTextBox1.Text = str1;
    }
4

1 に答える 1

1

この行:

richTextBox1.Text = str1;

既存の書式設定をすべて置き換えます。

文字の範囲を選択してから、有効な RTF 文字列に置き換える必要があります。

tickイベントを次のようにしたいと思います(エラーチェックなし):

private void timer1_Tick(object sender, EventArgs e) {
  richTextBox1.Select(0, 1);
  string rtf = richTextBox1.SelectedRtf;
  richTextBox1.SelectedText = string.Empty;
  richTextBox1.Select(richTextBox1.Text.Length, 0);
  richTextBox1.SelectedRtf = rtf;
}
于 2013-07-19T16:29:09.703 に答える