C# 在文本框asp.net中显示不同颜色的字符串(文本)

C# 在文本框asp.net中显示不同颜色的字符串(文本),c#,asp.net,C#,Asp.net,在我的asp.net网站中,我有一个提供日志信息的文本框。我正在使用此日志显示错误、成功和其他信息。我想做的是根据日志类型在文本框中以颜色显示结果文本。对于eg;我想将错误显示为红色文本,将成功显示为绿色文本,依此类推 我尝试了以下代码,但使用此代码会更改textbox整个内容的颜色 /// <summary> /// colorIndex (0 = default, 1 = red, 2 = green) /// </summary> /

在我的asp.net网站中,我有一个提供日志信息的文本框。我正在使用此日志显示错误、成功和其他信息。我想做的是根据日志类型在文本框中以颜色显示结果文本。对于eg;我想将错误显示为红色文本,将成功显示为绿色文本,依此类推

我尝试了以下代码,但使用此代码会更改textbox整个内容的颜色

    /// <summary>
    /// colorIndex (0 = default, 1 = red, 2 = green)
    /// </summary>
    /// <param name="logValue"></param>
    /// <param name="colorIndex"></param>
    private void writeToLog(string logValue, int colorIndex)
    {
        if (colorIndex == 0)
        {
            TextBox2.ForeColor = Color.Black;
        }
        else if(colorIndex == 1)
        {
            TextBox2.ForeColor = Color.Red;
        }
        else if(colorIndex == 2)
        {
            TextBox2.ForeColor = Color.Green;
        }

        TextBox2.Text = "[ " + DateTime.Now + "] " + logValue + Environment.NewLine + TextBox2.Text;

    }
<div id = "log" style="border: thin solid #00CC99; width:844px; height:193px; overflow:auto;" runat= "server">
    </div>
//
///颜色索引(0=默认值,1=红色,2=绿色)
/// 
/// 
/// 
私有void writeToLog(字符串logValue,int colorIndex)
{
如果(colorIndex==0)
{
TextBox2.ForeColor=Color.Black;
}
else if(colorIndex==1)
{
TextBox2.ForeColor=Color.Red;
}
else if(colorIndex==2)
{
TextBox2.ForeColor=Color.Green;
}
TextBox2.Text=“[”+DateTime.Now+“]”“+logValue+Environment.NewLine+TextBox2.Text;
}
实际上,我希望输出如下:

您可以在上面的输出中看到,同一文本框中有三种不同颜色的文本。
此输出实际上来自桌面应用程序。我想在asp.net网页中显示相同类型的输出?我怎么做?请帮忙。提前谢谢

不能使用简单的文本框。相反,您必须使用许多所见即所得编辑器中的一个。任何服务器端语言的包装器都有许多可供选择的选项

但是,由于您的代码实际上并不需要用户能够修改这些数据,因此您只需使用正确的样式呈现HTML代码,并应用
overflow-y:auto;最大高度:100px
CSS样式,以便在内容过长时呈现滚动条。

您需要使用
或者asp.net中的某个WYGIWYS编辑器,我认为表格是最好的选择。您可以使用id和类更改文本颜色 并通过应用css为其提供样式

<table id="log">
 <tr><th>Response Type</th><th>Response Time</th><th>Response Data </th></tr>
 <tr class="error"><td></td><td></td><td></td></tr>
 <tr class="info"><td></td><td></td><td></td></tr>  
</table>

响应类型响应时间响应数据
您需要按jQuery或代码隐藏添加行
我想这对你完全有帮助。

你可以用标签来代替。这样,使用htmlspan标记呈现文本以定义不同的样式将非常简单和容易

    if (colorIndex == 0)
    {
        Lable2.Text += "<span style='color:Black'>Black information...</span><br/><br/>";
    }
    else if(colorIndex == 1)
    {
        Lable2.Text += "<span style='color:Red'>Red information...</span><br/><br/>";
    }
    else if(colorIndex == 2)
    {
        Lable2.Text += "<span style='color:Green'>Green information...</span><br/><br/>";
    }
if(colorIndex==0)
{
Lable2.Text+=“黑色信息…

”; } else if(colorIndex==1) { Lable2.Text+=“红色信息…

”; } else if(colorIndex==2) { Lable2.Text+=“绿色信息…

”; }
谢谢大家的回答!正如Knaģi所说,由于客户可能不需要编辑日志中的值,我认为使用所见即所得编辑器是不必要的。所以为了解决我的问题,我使用了div而不是textbox

    /// <summary>
    /// colorIndex (0 = default, 1 = red, 2 = green)
    /// </summary>
    /// <param name="logValue"></param>
    /// <param name="colorIndex"></param>
    private void writeToLog(string logValue, int colorIndex)
    {
        if (colorIndex == 0)
        {
            TextBox2.ForeColor = Color.Black;
        }
        else if(colorIndex == 1)
        {
            TextBox2.ForeColor = Color.Red;
        }
        else if(colorIndex == 2)
        {
            TextBox2.ForeColor = Color.Green;
        }

        TextBox2.Text = "[ " + DateTime.Now + "] " + logValue + Environment.NewLine + TextBox2.Text;

    }
<div id = "log" style="border: thin solid #00CC99; width:844px; height:193px; overflow:auto;" runat= "server">
    </div>

在我的代码中,我填写了以下日志:

private void writeToLog(string logValue, int colorIndex)
    {
        logValue = "[ " + DateTime.Now + "] " + logValue;
        if (colorIndex == 0)
        {
          string htmlCode = "<font style='color:black'>"+logValue+"</font><br/>";
          log.InnerHtml = htmlCode + log.InnerHtml;

        }
        else if(colorIndex == 1)
        {
            string htmlCode = "<font style='color:red'>" + logValue + "</font><br/>";
            log.InnerHtml = htmlCode + log.InnerHtml ;
        }
        else if(colorIndex == 2)
        {
            string htmlCode = "<font style='color:green'>" + logValue + "</font><br/>";
            log.InnerHtml = htmlCode + log.InnerHtml ;
        }



    }
private void writeToLog(字符串logValue,int colorIndex)
{
logValue=“[”+DateTime.Now+“]”“+logValue;
如果(colorIndex==0)
{
字符串htmlCode=”“+logValue+”
”; log.InnerHtml=htmlCode+log.InnerHtml; } else if(colorIndex==1) { 字符串htmlCode=”“+logValue+”
”; log.InnerHtml=htmlCode+log.InnerHtml; } else if(colorIndex==2) { 字符串htmlCode=”“+logValue+”
”; log.InnerHtml=htmlCode+log.InnerHtml; } }
您可以使用
标签
span
来通过
css
指定颜色。