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

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006
  • Study with Substance P

    Study with S

    31 Mayıs 2008