簡體   English   中英

如何將兩個差異標簽的號碼合並為一個新標簽?

[英]How to conbine two diffrence label's number to a new label?

我需要計算Lb1SumF加上Lb2SumF等於Lb3SumF。 我運行了它,並且不知何故label3沒有顯示預期的結果。

是結果的屏幕截圖。

這是我的代碼。

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 
}

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);
    }

用它替換您的代碼,它將起作用,您在必須使用+運算符的地方使用*運算符,我評論了代碼中的各行,並對其進行了替換,以更好地理解。 快樂編碼

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)
        {
        }
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM