2012-11-04 29 views
12

Tôi sử dụng biểu mẫu C# windows và tôi có richtextbox và tôi muốn tô màu một số văn bản màu đỏ, một số màu xanh lục và một số màu đen.Cách sử dụng đa màu trong richtextbox

Làm như thế nào? Đã đính kèm hình ảnh.

enter image description here

+0

Một số mã mà cho thấy những gì bạn đã làm sẽ là hữu ích. –

+0

@PaulHiemstra Thực ra tôi là một lập trình viên C++, C, Java, Assembly và nhiều lập trình viên khác, tôi chưa bao giờ sử dụng C# trước đây. Tôi lấy một khóa học trong ảnh cắt dán về C#. 'Cho đến khi tôi đi vào kinh doanh, tôi có thể cần sự giúp đỡ của bạn. cám ơn vì đã lắng nghe. – Billie

+0

Tôi hy vọng đây là giải pháp mà bạn đang tìm kiếm http://stackoverflow.com/a/27149285/998483 – Boobalan

Trả lời

28

System.Windows.Forms.RichTextBox đã có một loại tài sản của Color của tên SelectionColor mà được hoặc đặt màu chữ của vùng chọn hay chèn điểm hiện tại. Bạn có thể sử dụng thuộc tính này để đánh dấu các trường cụ thể trong số RichTextBox của mình bằng các màu bạn chỉ định.

Ví dụ

RichTextBox _RichTextBox = new RichTextBox(); //Initialize a new RichTextBox of name _RichTextBox 
_RichTextBox.Select(0, 8); //Select text within 0 and 8 
_RichTextBox.SelectionColor = Color.Red; //Set the selected text color to Red 
_RichTextBox.Select(8, 16); //Select text within 8 and 16 
_RichTextBox.SelectionColor = Color.Green; //Set the selected text color to Green 
_RichTextBox.Select(0,0); //Select text within 0 and 0 

ý rằng: Bạn có thể tránh tính toán bằng cách sử dụng RichTextBox.Find(string str) có thể được thêm thông qua Object Browser nếu bạn muốn đánh dấu văn bản trong Lines trong RichTextBox cho nó là giá trị

Ví dụ

RichTextBox _RichTextBox = new RichTextBox(); //Initialize a new RichTextBox of name _RichTextBox 
_RichTextBox.Find("Account 12345, deposit 100$, balance 200$"); //Find the text provided 
_RichTextBox.SelectionColor = Color.Green; //Set the selected text color to Green 

Cảm ơn,
Tôi hy vọng bạn tìm thấy điều này hữu ích :)

+0

Cảm ơn bạn rất nhiều – Billie

+0

@ user1798362 Không có vấn đề gì cả. Tôi rất vui vì tôi có thể giúp. Chúc một ngày tuyệt vời :) –

+0

Đây là giải pháp làm việc nhưng có một cách dễ dàng hơn để tiến hành: http://stackoverflow.com/a/10587765/1529139 – 56ka

12

tôi thấy phương pháp này mở rộng cung cấp cho bạn khả năng thay đổi màu sắc của chuỗi cũng như chèn một giá trị xuống dòng:

public static void AppendText(this RichTextBox box, string text, Color color, bool AddNewLine = false) 
    { 
     if (AddNewLine) 
     { 
      text += Environment.NewLine; 
     } 

     box.SelectionStart = box.TextLength; 
     box.SelectionLength = 0; 

     box.SelectionColor = color; 
     box.AppendText(text); 
     box.SelectionColor = box.ForeColor; 
    } 
+0

Tôi nghĩ bạn cũng có thể thêm 'box.SuspendLayout()' tại bắt đầu của phương thức và 'box.ResumeLayout()' ở cuối. – tedebus

-1

bạn có thể sử dụng Run đối tượng để thay đổi màu sắc khi chạy

private Run GetForegroundColor(string strInformation, Brush color) 
     { 
      Run noramlRun = new Run(strInformation); 
      noramlRun.Foreground = color; 
      return noramlRun; 
     } 

cho kịch bản phức tạp hơn như thay đổi màu sắc dựa trên yêu cầu sau đó truy cập liên kết đòn

https://sites.google.com/site/greateindiaclub/mobil-apps/windows8/customwpfrichtextboxwithcolorchangeandhighlightfunctionality