根据用户输入更改标签颜色

时间:2013-10-12 17:34:41

标签: c# .net

我正在尝试制作一个非常基本的程序。

我试图允许用户将温度输入文本框,然后如果温度低于15 cold 这个词将显示在标签中蓝色,如果高于15 ,它将以红色显示 hot

到目前为止,这是我的代码:

namespace FinalTemperature
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Button1_Click(object sender, EventArgs e)
        {
            double addTemperature;
            addTemperature = Double.Parse(txttemp.Text);
            lblans.Text = addTemperature.ToString();

            if (txttemp.Text.Trim() == "15")
            {
                lblans.ForeColor = System.Drawing.Color.Red;
            }

            if (txttemp.Text.Trim() == "14") 
            {
                lblans.ForeColor = System.Drawing.Color.Blue;
            }
        }
    }
}

到目前为止,我的程序只显示温度为红色(如果为15)和蓝色(如果为14)并将数字输出到标签,但目前没有其他数字对颜色产生影响。

6 个答案:

答案 0 :(得分:3)

这符合您的要求。 将String(text)转换为Int(数字), 并比较值。

    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Int32.Parse(txttemp.Text.Trim()) >= 15)
        {
            lblans.Text = "Hot";
            lblans.ForeColor = System.Drawing.Color.Red;
        } 
        else 
        {
            lblans.Text = "Cold";
            lblans.ForeColor = System.Drawing.Color.Blue;
        }
    }

答案 1 :(得分:2)

您实际上正在检查与#14; 15"和" 14"忽略所有其他价值观。

试试这个

if(addTemperature < 15)
{
    lblans.ForeColor = System.Drawing.Color.Blue;
}
else
{
    lblans.ForeColor = System.Drawing.Color.Red;
}

答案 2 :(得分:2)

ASPX

在页面中添加标签

<asp:label id="lbl" runat="server"></asp:label>, 

在您的代码中:

//使用下面给出的条件:

if(Convert.ToInt32(txtTemp.Text)>15 )
{
  lbl.Text= "HOT";
  lbl.ForeColor= System.Drawing.Color.Red;
}
else
{
    lbl.Text="COLD";
         lbl.ForeColor= System.Drawing.Color.Blue;
}

上面的代码将字符串值转换为Int32,以便您可以将其与您想要的任何数值进行比较,而不是将比较值作为字符串。您不能将除equals以外的逻辑运算符应用于字符串。

答案 3 :(得分:1)

您正在测试14和15。您需要将字符串转换为整数并与&gt; =和&lt; =。

进行比较

答案 4 :(得分:1)

您需要使用<=>=>< operators,用于检查数字是否小于,超过,您还需要使用转换后的双精度。

// If LESS than 15
if (addTemperature < 15)
{
    lblans.ForeColor = System.Drawing.Color.Blue;
}
// Else, meaning anything other is MORE than 15, you could also do:
// else if (addTemperature >= 15), but that wouldn't be needed in this case
else
{
    lblans.ForeColor = System.Drawing.Color.Red;
}

您之前的代码无效的原因是您只检查了15和14,而没有检查任何其他值。

在我阅读你的问题时,我也认为ternary operator对此非常有用。

 lblans.ForeColor = addTemperature < 15 ? System.Drawing.Color.Blue : System.Drawing.Color.Red

答案 5 :(得分:1)

lblans.ForeColor = addTemperature < 15 ? System.Drawing.Color.Blue :  System.Drawing.Color.Red;