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

  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011
  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010