我试图将我的标签输入乘以一个数字输入到一个文本框但是仍然遇到问题...如果文本框3,4中没有输入,我还试图保持标签值不变, 5。例如,如果我在文本框3中放置3.20,它将更新标签1& 4具有新值但不保留剩余标签的原始值。
非常失落......非常感谢任何帮助。
我想要完成的事情:
在此阶段,用于输入加仑的文本框将被激活,因此也会激活填充按钮。用户在文本框中输入加仑数,然后单击“填充”。 燃气订单的成本显示在另一个文本框中,仅用于显示。 将订单价格计算打包成一个函数。
价格按钮:在表格的下半部分显示一组新的控件,显示每个等级燃料的每加仑价格[这些是与上半部分的标签不同的新控件,并且是意味着向经理显示当前的价格],以及用于为每个按钮输入新价格的文本框,以及在第三行中更新和取消的两个按钮。更新将更新从文本框读取的价格作为每加仑价格的新值。 [请注意,这些新值应反映在表格上半部分的燃油等级按钮下方显示的标签中。这些标签应始终显示当前价格,因此经理在价格中的任何更改也应更改这些标签。]取消将不会改变任何内容。做出选择后,下半部分的控件再次消失。
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;
答案 0 :(得分:0)
选择您只想允许数字输入的文本框,在属性窗口中找到事件(lightnig)图标,然后双击KeyPress事件。这将生成一个处理程序。将此代码放在处理程序中:
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
(e.KeyChar != '.'))
{
e.Handled = true;
}
// only allow one decimal point
if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
{
e.Handled = true;
}
该代码只允许用户在文本框中输入数字和小数点。