[英]How to color richTextBox text in colors in the same line and then move to next line?
[英]How to programatically set RichTextbox text and line color?
我正在使用此答案以編程方式向我的RichTextBox文本添加彩色線條。
我的RichTextBoxExtensions
類與該解決方案中的類完全相同。 然后我有一個OutputMessage
類:
class OutputMessage
{
private string _message;
private Color _color;
public string Message { get { return _message; } }
public Color Color { get { return _color; } }
public OutputMessage(string message, CodeDeployer.enums.OutputTypes ot)
{
_message = message;
switch (ot)
{
case enums.OutputTypes.Success:
_color = Color.Green;
break;
case enums.OutputTypes.Error:
_color= Color.Red;
break;
case enums.OutputTypes.Warning:
_color= Color.DarkOrange;
break;
default:
_color = Color.Black;
break;
}
}
}
在我的表單上,我維護一個List<OutputMessage>
,然后有一個方法將遍歷List
並嘗試將內容放入表單上的RichTextBox
。
private void foo()
{
this.txtOutput = GetOutput();
this.txtOutput.Text = GetOutput().Text;
}
private RichTextBox GetOutput()
{
RichTextBox results = new RichTextBox();
foreach (OutputMessage om in output)
results.AppendText(om.Message, om.Color);
return results;
}
如果我在第一行代碼中執行foo()
,則txtOutput
不會發生任何變化。 它只是一個空的文本框。
如果我使用第二行代碼執行foo()
,則txtOutput
確實具有List<OutputMessage>
所有文本,但是顏色丟失了。
如果我更改GetOutput
以直接與窗體上的控件進行交互,則它將按預期工作。 讓它接受RichTextBox
作為參數也可以。
誰可以給我解釋一下這個? 我猜它與如何通過引用/按值傳遞事物有關,但是我不明白。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.