Saya mencoba mewarnai bagian string untuk ditambahkan ke RichTextBox. Saya memiliki string yang dibangun dari string yang berbeda.
string temp = "[" + DateTime.Now.ToShortTimeString() + "] " +
userid + " " + message + Environment.NewLine;
Seperti inilah pesan akan terlihat setelah dibuat.
[21:23] Pengguna: pesan saya di sini.
Saya ingin semua yang ada di dalam dan termasuk tanda kurung [9:23] menjadi satu warna, 'pengguna' menjadi warna lain dan pesan menjadi warna lain. Lalu saya ingin string tersebut ditambahkan ke RichTextBox saya.
Bagaimana saya bisa melakukannya?
Jawaban:
Berikut adalah metode ekstensi yang membebani
AppendText
metode dengan parameter warna:Dan inilah cara Anda menggunakannya:
Perhatikan bahwa Anda mungkin melihat beberapa kedipan jika Anda mengeluarkan banyak pesan. Lihat artikel Sudut C # ini untuk mengetahui cara mengurangi kedipan RichTextBox.
sumber
box.Text += mystring
sehingga semua warna menghilang. Ketika saya menggantinya denganbox.AppendText(mystring)
, itu bekerja seperti pesona.AppendText(string text)
dengan WinFormsSaya telah memperluas metode dengan font sebagai parameter:
sumber
Ini adalah versi modifikasi yang saya masukkan ke dalam kode saya (saya menggunakan .Net 4.5) tetapi saya pikir ini harus berfungsi pada 4.0 juga.
Beda dengan yang asli:
sumber
Saya pikir memodifikasi "teks yang dipilih" dalam RichTextBox bukanlah cara yang tepat untuk menambahkan teks berwarna. Jadi di sini metode untuk menambahkan "blok warna":
Dari MSDN :
Jadi saya pikir Anda harus membagi string Anda tergantung pada warna bagian, dan membuat
Run
objek sebanyak yang dibutuhkan.sumber
Ini berhasil untuk saya! Semoga bermanfaat bagi Anda!
sumber
Memilih teks seperti yang diucapkan dari seseorang, semoga pemilihan tersebut muncul sesaat. Tidak
Windows Forms applications
ada solusi lain untuk masalah ini, tetapi hari ini saya menemukan cara yang buruk, berhasil, untuk memecahkannya: Anda dapat meletakkannyaPictureBox
di tumpang tindih keRichtextBox
dengan tangkapan layar jika, selama pemilihan dan perubahan warna atau font, membuatnya setelah muncul kembali semua, setelah operasi selesai.Kode ada di sini ...
Lebih baik menggunakan WPF; solusi ini tidak sempurna, tetapi untuk Winform berhasil.
sumber
sumber
Menggunakan Pilihan di WPF, menggabungkan dari beberapa jawaban lain, tidak ada kode lain yang diperlukan (kecuali enum Severity dan fungsi GetSeverityColor)
sumber
Saya membuat Fungsi ini setelah meneliti di internet karena saya ingin mencetak string XML saat Anda memilih baris dari tampilan kisi data.
dan begitulah Anda menyebutnya
sumber