Как связать номер двух разных лейблов с новым лейблом? - PullRequest
0 голосов
/ 27 марта 2019

Мне нужно вычислить 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 
}

Ответы [ 2 ]

1 голос
/ 27 марта 2019

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);
    }
0 голосов
/ 27 марта 2019

Замените ваш код этим, он будет работать, вы используете * оператор, где вы должны использовать оператор +, я прокомментировал эти строки в вашем коде и заменил его для лучшего понимания. Счастливое кодирование

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)
        {
        }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...