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

  • Absolute Zero(Programming Tutorials)

    Absolute Zer

    22 Kasım 2012
  • Liz Morgan

    Liz Morgan

    4 Aralık 2011
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008