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

  • Greater Than Gatsby Photoshop Actions & Lightroom Presets

    Greater Than

    11 ŞUBAT 2013
  • Need for Speed

    Need for Spe

    8 ŞUBAT 2006
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012