如何将两个差异标签的号码合并为一个新标签?

时间:2019-03-27 04:12:07

标签: c# webforms

我需要计算Lb1SumF加上Lb2SumF等于Lb3SumF。 我运行了它,但不知何故label3无法显示预期结果。

Here是结果的屏幕截图。

这是我的代码。

private void Form1_Load(object sender, EventArgs e)
{
    TX1.TabIndex=0;
}

private void TX1_TextChanged(object sender, EventArgs e)
{
    try
    {
        int sumF;
        sumF = Convert.ToInt32(Lb1PriceF.Text) * Convert.ToInt32(TX1.Text);
        Lb1SumF.Text = Convert.ToString(sumF); //Label1 sum

    }

    catch
    {
        Lb1SumF.Text = "0";
    }
}

private void TX2_TextChanged(object sender, EventArgs e)
{
    try
    {
        int sumF;
        sumF = Convert.ToInt32(Lb2PriceF.Text) * Convert.ToInt32(TX2.Text);
        Lb2SumF.Text = Convert.ToString(sumF); //Label2 sum

    }

    catch
    {
        Lb2SumF.Text = "0";
    }
}

private void Lb3_TextChanged(object sender, EventArgs e)
{
       int i = Convert.ToInt32(Lb1SumF.Text);
       int j = Convert.ToInt32(Lb2SumF.Text);
       Lb3.Text = Convert.ToString(i+j); // Label3 sum 
}

2 个答案:

答案 0 :(得分:1)

Lb3_TextChanged可能永远不会被调用,因为您没有更改标签的文本。我建议将其更改为私有方法,而不是事件处理程序。代码可能是这样的:

    private void TX1_TextChanged(object sender, EventArgs e)
    {
        try
        {
            int sumF;
            sumF = Convert.ToInt32(Lb1PriceF.Text) * Convert.ToInt32(TX1.Text);
            Lb1SumF.Text = Convert.ToString(sumF); //Label1 sum

            // Call to update sum
            UpdateSum();
        }
        catch
        {
            Lb1SumF.Text = "0";
        }
    }

    private void TX2_TextChanged(object sender, EventArgs e)
    {
        try
        {
            int sumF;
            sumF = Convert.ToInt32(Lb2PriceF.Text) * Convert.ToInt32(TX2.Text);
            Lb2SumF.Text = Convert.ToString(sumF); //Label2 sum

            // Call to update sum
            UpdateSum();
        }
        catch
        {
            Lb2SumF.Text = "0";
        }
    }

    // private void Lb3_TextChanged(object sender, EventArgs e)
    private void UpdateSum()
    {
           int sum = 0;

           if(!string.IsNullOrEmpty(Lb1SumF.Text) && !string.IsNullOrEmpty(Lb2SumF.Text))
           {
              sum = Convert.ToInt32(Lb1SumF.Text) + Convert.ToInt32(Lb2SumF.Text);
           }

           Lb3.Text = Convert.ToString(sum);
    }

答案 1 :(得分:0)

用它代替您的代码,它将起作用,您正在使用*运算符,而必须使用+运算符。 快乐编码

namespace WindowsFormsApp8
{
    public partial class Form1 : Form
    {
        private void Lb1SumF_Click(object sender, EventArgs e)
        {
        }

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            TX1.TabIndex=0;
        }

        private void label4_Click(object sender, EventArgs e)
        {
        }

        private void TX1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                int sumF; 
                //sumF = Convert.ToInt32(Lb1PriceF.Text) * Convert.ToInt32(TX1.Text); // You were doing wrong here , you were multiplying these values
                sumF = Convert.ToInt32(Lb1PriceF.Text) + Convert.ToInt32(TX1.Text);
                Lb1SumF.Text = Convert.ToString(sumF); //Label1 sum
            }
            catch
            {
                Lb1SumF.Text = "0";
            }
        }

        private void TX2_TextChanged(object sender, EventArgs e)
        {
            try
            {
                int sumF;
                //sumF = Convert.ToInt32(Lb2PriceF.Text) * Convert.ToInt32(TX2.Text); //you are doing it wrong here , you are multiplying
                sumF = Convert.ToInt32(Lb2PriceF.Text) + Convert.ToInt32(TX2.Text);
                Lb2SumF.Text = Convert.ToString(sumF); //Label2 sum
            }
            catch
            {
                Lb2SumF.Text = "0";
            }
        }

        private void Lb3_TextChanged(object sender, EventArgs e)
        {
               int i = Convert.ToInt32(Lb1SumF.Text);
               int j = Convert.ToInt32(Lb2SumF.Text);
               Lb3.Text = Convert.ToString(i+j); // Label3 sum 
        }

        private void Lb3SumF_Click(object sender, EventArgs e)
        {
        }
   }
}