Я пытаюсь умножить свой ввод меток на ввод числа в текстовое поле, но все время сталкиваюсь с проблемами ... Я также пытаюсь сохранить значения меток неизменными, если нет ввода в текстовое поле 3,4,5. Например, если я поместил 3.20 в текстовое поле 3, он обновит метку 1 & 4 с новым значением, но не сохранит оставшиеся метки с исходными значениями.C# Умножение текста метки с помощью ввода текстового поля.
Очень потеряно ... любая помощь очень ценится.
То, что я пытаюсь выполнить:
На данном этапе Textbox для вступающих галлонов становится активным, так и кнопкой Fill. Пользователь вводит количество галлонов в текстовое поле и нажимает «Заполнить». Стоимость заказа газа отображается в другом текстовом поле, которое используется только для отображения. Пакет расчета цены заказа в функцию.
Кнопка цены: отображает новый набор элементов управления, видимый в нижней половине формы, показывающий цены на галлон для каждого сорта топлива (это новые элементы управления, отличные от ярлыков в верхней половине, и чтобы показать менеджеру, какие текущие цены], а также текстовые поля для ввода новых цен для каждой и две кнопки «Обновить» и «Отмена» в третьей строке. Обновление обновит цены, считанные из текстовых полей, в качестве новых значений цены за галлон. [Обратите внимание, что эти новые значения должны быть отражены на ярлыках, указанных ниже, в верхних половинах формы. Эти ярлыки должны всегда показывать текущую цену, поэтому любое изменение, которое должен выполнять менеджер по ценам, должно также изменить эти ярлыки.] Отмена ничего не изменит. После того, как выбор сделан, элементы управления в нижней половине снова исчезнут.
private int gasPrice = 0;
private int gasPrice1 = 0;
private int gasPrice2 = 0;
private int numGallons = 0;
private double total = 0;
private bool regularButton;
private bool premiumButton;
private bool xtraButton;
public Form1 ()
{
InitializeComponent();
}
private void regButton_Click (object sender, EventArgs e)
{
regButton.BackColor = Color.Green;
regButton.ForeColor = Color.Red;
textBox1.Enabled = true;
regularButton = true;
xtraButton = false;
premiumButton = false;
}
private void extraButton_Click (object sender, EventArgs e)
{
extraButton.BackColor = Color.Green;
extraButton.ForeColor = Color.Red;
textBox1.Enabled = true;
regularButton = false;
xtraButton = true;
premiumButton = false;
}
private void premButton_Click (object sender, EventArgs e)
{
premButton.BackColor = Color.Green;
premButton.ForeColor = Color.Red;
textBox1.Enabled = true;
regularButton = false;
xtraButton = false;
premiumButton = true;
}
private void fillButton_Click (object sender, EventArgs e)
{
//double price;
int gallons;
int price, price1, price2;
gasPrice = Convert.ToInt32(label1.Text);
gasPrice1 = int.Parse(label2.Text);
gasPrice2 = int.Parse(label3.Text);
numGallons = int.Parse(textBox1.Text);
//gallons = int.Parse(textBox1.Text);
//price = int.Parse(label1.Text);
//price1 = int.Parse(label2.Text);
//price2 = int.Parse(label3.Text);
if (regularButton == true)
{ total = gasPrice * numGallons; }
else if (xtraButton == true)
{ total = gasPrice1 * numGallons; }
else
{ total = gasPrice2 * numGallons; }
textBox2.Text = total.ToString("c");
textBox2.Visible = true;
if (textBox1.Text == "0")
{ MessageBox.Show("Operation Cancelled"); }
ResetData();
}
private void finishButton_Click (object sender, EventArgs e)
{
ResetData();
}
private void ResetData ()
{
//Resets buttons back to default settings
regButton.BackColor = default(Color);
regButton.ForeColor = default(Color);
extraButton.BackColor = default(Color);
extraButton.ForeColor = default(Color);
premButton.BackColor = default(Color);
premButton.ForeColor = default(Color);
//Clears out both text boxes
textBox1.Clear();
textBox2.Clear();
//textboxes are returned to original state
textBox1.Enabled = false;
textBox2.Visible = false;
}
private void salesButton_Click (object sender, EventArgs e)
{
}
private void button1_Click (object sender, EventArgs e)
{
// updates gas price if/when supervisor changes
label1.Text = "$" + textBox3.Text;
label2.Text = "$" + textBox4.Text;
label3.Text = "$" + textBox5.Text;
label4.Text = "$" + textBox3.Text;
label5.Text = "$" + textBox4.Text;
label6.Text = "$" + textBox5.Text;
}
private void pricesButton_Click (object sender, EventArgs e)
{
label4.Visible = true;
label5.Visible = true;
label6.Visible = true;
textBox3.Visible = true;
textBox4.Visible = true;
textBox5.Visible = true;
updateButton.Visible = true;
cancelButton.Visible = true;
Какие проблемы вы столкнулись? Пожалуйста, укажите, какая именно помощь вам нужна. – CodingYoshi
Две проблемы, с которыми я сталкиваюсь ... 1 пытается умножить gasPrice * numGallons, у меня есть цена на газ, указанная как текст на этикетке как 3.70, и она говорит, что не может преобразовать строку в int. Вторая проблема - при вводе нового значения в текстовое поле 3, оно будет обновлять метки 1 и 4, но в ответ оставить метки 2,3,5,6 всего лишь $, а не значение, указанное в тексте для этикеток. – rpdeleon
Ваша первая проблема заключается в том, что вы пытаетесь преобразовать текст с метки в int и не выполняете, потому что у вас могут быть символы, которые не являются цифрами. Вторая проблема заключается в том, что ваш код в button1_Click обновляет метки 1 и 4 с помощью textbox3, и, конечно, у других лейблов будет только знак доллара, если в текстовых полях, для которых эти ярлыки отображаются, ничего нет. – CodingYoshi