2010-11-02 94 views
7

Làm thế nào tôi có thể định dạng văn bản trong Rich Text Box như sauĐịnh dạng văn bản trong Rich Text Box

02/11/2010 - 05:15 - Adam: Một ghi chú thử nghiệm thêm trên 2 Tháng Mười Một

02/11/2010 - 05:14 PM - Z_kas: Ghi chú thử nghiệm. GIAI ĐOẠN đổi thành: N Enq - Gửi Trích

02/11/2010 - 05:12 - user32: Một ghi chú thử nghiệm thêm trên 2 Tháng Mười Một

Cảm ơn

+0

bản sao có thể có của [Thay đổi màu văn bản trong một RichForm của WinForms] (http://stackoverflow.com/questions/2527700/change-color-of-text-within-a-winforms-richtextbox) – Oliver

Trả lời

17

như đã nêu bởi những người khác có một sự trùng lặp có thể xảy ra với một câu hỏi trước đó. Tuy nhiên, vui lòng xem đoạn mã bên dưới. Bạn không cần phải có độ dài của văn bản mà bạn thêm vào để thay đổi định dạng của nó, chỉ cần đặt định dạng trước khi bạn thêm. Điều này (tôi nghĩ) cho hiệu suất tốt hơn nếu bạn có rất nhiều văn bản trong hộp văn bản.

Điều này sẽ hoạt động miễn là không có lựa chọn nào trong hộp văn bản của người dùng, sau đó những điều kỳ lạ sẽ xảy ra mà tôi không thể giải thích. Có lẽ ai đó khác có thể khai sáng cho chúng ta? Cùng một vấn đề xuất hiện với giải pháp được đề xuất trong Change color of text within a WinForms RichTextBox. Tôi thay thế ":" bạn đã có sau khi tên người dùng chỉ để có được mẫu mã của tôi để làm việc dễ dàng hơn với điều DateTime, điều này có thể dễ dàng sửa đổi trong "Split".

 private void AddText(string text) 
    { 
     string[] str = text.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); 

     if (str.Length == 2) 
     { 
      richTextBox1.DeselectAll(); 
      richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Bold); 
      richTextBox1.AppendText(Environment.NewLine + str[0] + ";"); 
      richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Regular); 
      richTextBox1.AppendText(str[1]); 
     } // Else?? Well, do something else.. 
    } 

Và cuộc gọi:

 private void button1_Click(object sender, EventArgs e) 
    { 
     AddText(DateTime.Now.ToString() + " - Mike; Did something"); 

    } 
9

Một cách khác là sử dụng định dạng rtf:

richTextBox1.Rtf = @"{\rtf1\pc \b 02/11/2010 - 05:15 PM - Adam:\b0 Another test notes added on 2nd November \par \b 02/11/2010 - 05:14 PM - Z_kas:\b0 Test Notes. STAGE CHANGED TO: N Enq - Send Quote\par \b 02/11/2010 - 05:12 PM - user32:\b0 Another test notes added on 2nd November"; 

thấy MSDN: http://msdn.microsoft.com/en-us/library/aa287595%28v=vs.71%29.aspx http://msdn.microsoft.com/en-us/library/aa140301.aspx#rtfspec_8

"\ b" bắt đầu phần in đậm của văn bản và "\ b0" kết thúc. "\ par" bắt đầu đoạn/dòng mới (gần nhất với \ n).

Các vấn đề liên quan