#c# #webforms
#c# #веб-формы
Вопрос:
Мне нужно вычислить 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
}
Комментарии:
1. что такое
Lb3
это текстовое поле или метка?2.
Lb3_TextChanged
может никогда не быть вызвано, поскольку вы не меняете текст метки. Я бы предпочел предложить изменить его на частный метод, а не на обработчик событий. Допустим, вы присваиваете ей значение,UpdateSum()
где ваша первая строка должна быть проверяемой!string.IsNullOrEmpty(Lb1SumF.Text) amp;amp; !string.IsNullOrEmpty(Lb2SumF.Text)
, после чего вы можете сохранить существующий код. ВызовитеUpdateSum()
метод вTX1_TextChanged
иTX2_TextChanged
3. Я также добавил код, отражающий мой комментарий
Ответ №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) amp;amp; !string.IsNullOrEmpty(Lb2SumF.Text))
{
sum = Convert.ToInt32(Lb1SumF.Text) Convert.ToInt32(Lb2SumF.Text);
}
Lb3.Text = Convert.ToString(sum);
}
Ответ №2:
Замените свой код на этот, и он будет работать, вы используете оператор *, где вы должны использовать оператор , я прокомментировал эти строки в вашем коде и заменил их для лучшего понимания. Удачного кодирования
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)
{
}
}
}
Комментарии:
1. Замена * на не вызывает событие, которое никогда не должно было вызываться.
2. Он использует неправильный оператор, Как я узнаю без Gui, какое событие присоединено к какой функции здесь. @MasoudKeshavarz
3. @MasoudKeshavarz Поскольку он упомянул этот URL своего вывода imgur.com/WffG3sZ кажется, что его события работают нормально, но он получает неправильный ответ только о своем операторе ‘*’ вместо оператора ‘ ‘.