创建一个包含两个文本框和两个按钮

时间:2015-08-15 02:36:31

标签: c# windows-applications eventhandler tryparse

当我尝试将字体颜色设置为黄色时,我搞砸了我的代码。请帮忙!!

说明: 创建一个包含两个文本框和两个按钮的Windows应用程序。文本框应该用于允许用户输入两个正数值。按钮应标记为Add and Multiply。创建事件处理程序方法,以检索值,执行计算并在标签上显示计算结果。结果标签最初应设置为不可见,字体颜色为黄色。如果输入了无效数据,请在结果标签上将字体颜色更改为红色并显示消息"值必须为数字且> 0。"显示最终答案时,字体颜色应为黄色。文本框标题将需要其他标签。不允许输入非数字字符。调用 TryParse()方法来检索值。应该命名程序语句中涉及的所有控件。右对齐文本框中的值。

这是我在form1页面上得到的内容

namespace Add_and_Multiply
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int val1;
            int val2;
            val1 = Convert.ToInt32(textBox1.Text);
            val2 = Convert.ToInt32(textBox2.Text);
            label3.Text = Convert.ToString(val1 + val2); //after this line I tried putting the code to give me yellow color text and now I have so many errors:(
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int val1;
            int val2;
            val1 = Convert.ToInt32(textBox1.Text);
            val2 = Convert.ToInt32(textBox2.Text);
            label3.Text = Convert.ToString(val1 * val2);
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

有人可以帮助我吗?我在这方面不太好。 感谢

有人告诉我这样解决。

namespace Add_and_Multiply
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int val1;
            int val2;
            if(!int.TryParse(textBox1.Text.Trim(), out val1))
            {
                lblYellow.ForeColor = Color.Yellow;
                lblYellow.Visible = true;
                lblYellow.Text = "First value is invalid";
                return;
            }
            if(!int.TryParse(textBox2.Text.Trim(), out val2))
            {
                lblYellow.ForeColor = Color.Yellow;
                lblYellow.Visible = true;
                lblYellow.Text = "Second value is invalid";
                return;
            }
            lblYellow.Visible = false;
            label3.Text = Convert.ToString(val1 + val2);

        }

        private void button2_Click(object sender, EventArgs e)
        {
            int val1;
            int val2;
            if(!int.TryParse(textBox1.Text.Trim(), out val1))
            {
                lblYellow.ForeColor = Color.Yellow;
                lblYellow.Visible = true;
                lblYellow.Text = "First value is invalid";
                return;
            }
            if(!int.TryParse(textBox2.Text.Trim(), out val2))
            {
                lblYellow.ForeColor = Color.Yellow;
                lblYellow.Visible = true;
                lblYellow.Text = "Second value is invalid";
                return;
            }
            lblYellow.Visible = false;
            label3.Text = Convert.ToString(val1 * val2);


        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

但我收到错误"名称' lblYellow'在目前的背景下不存在剂量Form1.cs"我应该在private void button1_click line之前声明它吗?

5 个答案:

答案 0 :(得分:0)

label3.ForeColor = Color.Yellow;

...应将标签颜色更改为黄色......

但是你有另一个问题。您没有检查无效输入以将标签更改为红色,也没有调用TryParse作为说明命令。

此外,说明指出用户应该能够输入任何正数值。这将包括 8.9 216.75 。我想如果你想要最好的成绩,你需要考虑到这一点。看看C# built-in data types

答案 1 :(得分:0)

你遇到的错误是什么?我认为你必须在行后删除一个:

label3.Text = Convert.ToString(val1 + val2);

答案 2 :(得分:0)

看起来你正在定义一个没有类或类外的方法,请检查所有方法是否在Form1中,请检查是否有更多或缺少括号。

答案 3 :(得分:0)

如果有人遇到这个项目的问题,那么这里是最终产品。一旦它运行,它看起来很不错。

一切都很好,它应该如何!

{     公共部分类Form1:表格     {         公共Form1()         {             的InitializeComponent();         }

    private void button1_Click(object sender, EventArgs e)
    {
        int val1;
        int val2;
        int valid1 = 0;
        int valid2 = 0;
        if(int.TryParse(textBox1.Text.Trim(), out val1))
        {
            if(val1>0)
            {
                valid1 = 1;
                caption1.ForeColor = Color.Yellow;
                caption1.Visible = true;
                caption1.Text = "First value is valid"; 
            }
            else
            {
                caption1.ForeColor = Color.Red;
                caption1.Visible = true;
                caption1.Text = "Value must be Greater than 0";
            }
        }
        else
        {
            caption1.ForeColor = Color.Red;
            caption1.Visible = true;
            caption1.Text = "Value must be Numeric";
        }
        if(int.TryParse(textBox2.Text.Trim(), out val2))
        {
            if (val2 > 0)
            {
                valid2 = 1;
                caption2.ForeColor = Color.Yellow;
                caption2.Visible = true;
                caption2.Text = "First value is valid";
            }
            else
            {
                caption2.ForeColor = Color.Red;
                caption2.Visible = true;
                caption2.Text = "Value must be Greater than 0";
            }
        }
        else
        {
            caption2.ForeColor = Color.Red;
            caption2.Visible = true;
            caption2.Text = "Value must be Numeric";
        }
        if((valid1 > 0)&& (valid2 > 0))
        {
            label3.Visible = true;
            label3.ForeColor = Color.Yellow;
            label3.Text = Convert.ToString(val1 + val2);
        }
        else
        {
            label3.Visible = false;
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        int val1;
        int val2;
        int valid1 = 0;
        int valid2 = 0;
        if(int.TryParse(textBox1.Text.Trim(), out val1))
        {
            if (val1 > 0)
            {
                valid1 = 1;
                caption1.ForeColor = Color.Yellow;
                caption1.Visible = true;
                caption1.Text = "First value is valid";
            }
            else
            {
                caption1.ForeColor = Color.Red;
                caption1.Visible = true;
                caption1.Text = "Value must be Greater than 0";
            }
        }
        else
        {
            caption1.ForeColor = Color.Red;
            caption1.Visible = true;
            caption1.Text = "Value must be Numeric";
        }
        if(int.TryParse(textBox2.Text.Trim(), out val2))
        {
            if (val2 > 0)
            {
                valid2 = 1;
                caption2.ForeColor = Color.Yellow;
                caption2.Visible = true;
                caption2.Text = "First value is valid";
            }
            else
            {
                caption2.ForeColor = Color.Red;
                caption2.Visible = true;
                caption2.Text = "Value must be Greater than 0";
            }
        }
        else
        {
            caption2.ForeColor = Color.Red;
            caption2.Visible = true;
            caption2.Text = "Value must be Numeric";

        }
        if ((valid1 > 0) && (valid2 > 0))
        {
            label3.Visible = true;
            label3.ForeColor = Color.Yellow;
            label3.Text = Convert.ToString(val1 * val2);
        }
        else 
        {
            label3.Visible = false;
        }
         }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }
}

}

答案 4 :(得分:0)

我知道这是两年之后但思想人仍然可能正在寻求帮助。

private void btnAdd_Click(object sender, EventArgs e)
{
    int firstNumber, secondNumber;

    if (!int.TryParse(txtBxFirstNumber.Text, out firstNumber) || firstNumber < 1)
    {
        lblResults.Text = "First number needs\n to be numeric and > 0";
        lblResults.ForeColor = Color.Red;
        lblResults.Visible = true;
        txtBxFirstNumber.Clear();
        return;
    }
    if (!int.TryParse(txtBxSecondNumber.Text, out secondNumber) || secondNumber < 1)
    {
        lblResults.Text = "Second number need\n to be numeric and > 0";
        lblResults.ForeColor = Color.Red;
        lblResults.Visible = true;
        txtBxSecondNumber.Clear();
        return;
    }
    lblResults.ForeColor = Color.Yellow;
    lblResults.Visible = true;
    lblResults.Text = Convert.ToString(firstNumber + secondNumber);
}

private void btnMultiply_Click(object sender, EventArgs e)
{
    int firstNumber, secondNumber;

    if (!int.TryParse(txtBxFirstNumber.Text, out firstNumber) || firstNumber < 1)
    {
        lblResults.Text = "First number needs\n to be numeric";
        lblResults.ForeColor = Color.Red;
        lblResults.Visible = true;
        txtBxFirstNumber.Clear();
        return;
    }
    if (!int.TryParse(txtBxSecondNumber.Text, out secondNumber) && secondNumber < 1)
    {
        lblResults.Text = "Second number need\n to be numeric";
        lblResults.ForeColor = Color.Red;
        lblResults.Visible = true;
        txtBxSecondNumber.Clear();
        return;
    }
    lblResults.ForeColor = Color.Yellow;
    lblResults.Visible = true;
    lblResults.Text = Convert.ToString(firstNumber * secondNumber);
}
相关问题