2012-05-14 52 views
13

Tôi muốn hiển thị văn bản trong hộp văn bản bằng 2 màu, ví dụ 1 dòng màu đỏ 2 màu xanh, nếu tôi sử dụng name.ForeColor = Color.Red; tất cả màu thay đổi văn bản, nhưng tôi muốn điều đó sẽ chỉ thay đổi 1 màu.Hộp văn bản nhiều màu C#

+2

WinForms hoặc WPF? – Tudor

+0

Tôi sử dụng winform. – Wizard

+0

@Tudor ForeColor là một thuộc tính của windows forms – animaonline

Trả lời

15

Bạn cần phải sử dụng một RichTextBox.

Sau đó, bạn có thể thay đổi màu văn bản bằng cách chọn văn bản và thay đổi màu hoặc phông chữ chọn.

richTextBox1.SelectionFont = new Font("Verdana", 12, FontStyle.Bold); 
richTextBox1.SelectionColor = Color.Red; 
36

Sử dụng một RichTextBox cho rằng, đây là một phương pháp mở rộng bởi Nathan Baulch

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; 
    } 
} 

Read more here

+0

bất kỳ ý tưởng làm thế nào để làm với textbox? – Wizard

+0

không có cách nào để làm điều đó với một TextBox wf, bạn sẽ phải tạo UserControl của riêng bạn hoặc sử dụng RichTextBox ... – animaonline

+0

Tôi hiện đang nghiên cứu mã của bạn 'var userid =" USER0001 "; var message = "Truy cập bị từ chối"; var box = new RichTextBox { Dock = DockStyle.Fill, Font = new Font ("Chuyển phát nhanh mới", 10) }; box.AppendText ("[" + DateTime.Now.ToShortTimeString() + "]", Color.Red); box.AppendText (""); box.AppendText (userid, Color.Green); box.AppendText (":"); box.AppendText (tin nhắn, Color.Blue); box.AppendText (Environment.NewLine); Biểu mẫu mới {Controls = {box}}. ShowDialog(); 'và không hiểu cách thực hiện RichTextBox đó sẽ không ở dạng mới? – Wizard

0

Trước hết, các chi tiết thẻ + bạn cung cấp không đầy đủ - C# không có một khuôn khổ UI cụ thể, nó có một vài ví dụ: WPF, Winforms, ASP.NET, Silverlight.

Thứ hai, bạn không thể thực hiện việc này bằng điều khiển hộp văn bản thông thường trong bất kỳ điều nào ở trên. Bạn sẽ cần phải tìm/tạo điều khiển giao diện người dùng tùy chỉnh có hành vi khác hoặc sử dụng điều khiển nâng cao hơn, ví dụ: một hộp văn bản có định dạng.

1

Dưới đây là ví dụ về Fontdialog và Colordialog.

void TextfarbeToolStripMenuItemClick(object sender, EventArgs e) 
     { 
      colorDialog1.ShowDialog(); 
      richTextBox1.ForeColor = colorDialog1.Color; 
      listBox1.ForeColor = colorDialog1.Color; 
     } 

     void FontsToolStripMenuItemClick(object sender, EventArgs e) 
     { 
      fontDialog1.ShowDialog(); 
      richTextBox1.Font = fontDialog1.Font; 
      listBox1.Font = fontDialog1.Font; 
     } 

     void HintergrundfarbeToolStripMenuItemClick(object sender, EventArgs e) 
     { 
      colorDialog1.ShowDialog(); 
      richTextBox1.BackColor = colorDialog1.Color; 
      listBox1.BackColor = colorDialog1.Color; 
     } 
Các vấn đề liên quan