SORU
18 Aralık 2009, Cuma


Denetler bir dize rengi farklı parçaları

Bir Denetler eklenecek bir dize parçaları renk vermeye çalışıyorum. Bir dize farklı dizeleri yaptım.

string temp = "["   DateTime.Now.ToShortTimeString()   "] "  
              userid   " "   message   Environment.NewLine;

Bu ileti inşa edilmiştir bir kez gibi görünecekti.

[9:23pm] Kullanıcı: mesajım burada.

Her şeyi içinde ve parantez [9:23] de dahil olmak üzere tek renk olması için, 'kullanıcı' başka bir renk ve başka bir renk için mesaj olmak istiyorum. Sonra Dize benim Denetler eklenen isterim.

Bunu nasıl yapabilirim?

CEVAP
18 Aralık 2009, Cuma


Burada renkli bir parametre ile AppendText yöntemi aşırı bir uzantısı yöntemi:

public static class RichTextBoxExtensions
{
    public static void AppendText(this RichTextBox box, string text, Color color)
    {
        box.SelectionStart = box.TextLength;
        box.SelectionLength = 0;

        box.SelectionColor = color;
        box.AppendText(text);
        box.SelectionColor = box.ForeColor;
    }
}

Ve bunu nasıl kullanırsınız

var userid = "USER0001";
var message = "Access denied";
var box = new RichTextBox
              {
                  Dock = DockStyle.Fill,
                  Font = new Font("Courier New", 10)
              };

box.AppendText("["   DateTime.Now.ToShortTimeString()   "]", Color.Red);
box.AppendText(" ");
box.AppendText(userid, Color.Green);
box.AppendText(": ");
box.AppendText(message, Color.Blue);
box.AppendText(Environment.NewLine);

new Form {Controls = {box}}.ShowDialog();

Eğer bir sürü mesaj yazdırılıyor iseniz bazı titremeyi görebilirsiniz unutmayın. Denetler titreşimi azaltmak için nasıl fikirler için this C# Corner makalesine bakın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009