这是我到目前为止的代码:
public partial class Form2 : Form
{
public Double X;
public Form2()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
if(textBox1.Text != "")
X = Convert.ToDouble(textBox1.Text);
X *= 0.001;
label3.Text = "metros";
}
private void button3_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
X = Convert.ToDouble(textBox1.Text);
X *= 0.62;
label3.Text = "milhas";
}
private void button4_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
X = Convert.ToDouble(textBox1.Text);
label3.Text = "quilómetros";
}
private void button5_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
X = Convert.ToDouble(textBox1.Text);
X *= 3280,84;
label3.Text = "pés";
}
private void button6_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
X = Convert.ToDouble(textBox1.Text);
X *= 0.17998560115190784737;
label3.Text = "léguas";
}
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = Convert.ToString(X);
}
这就是窗口的样子:
这些操作是什么,当你在textBox1上插入一个值(窗口中间左边的红色),然后从右边的按钮中选择测量,这会将引入的值转换为千米和存储它在变量X中,并将选定的测量值写在textBox1右侧的标签上。
当你按下“转换器”按钮时,(现在)我希望textBox2显示X,但是,这只有当我按下“metros”或“pés”时,如果我选择其中一个其他按钮转换它什么都不做......
有人知道出了什么问题吗?
另外,附带问题,如何从组合框中选择项目?
答案 0 :(得分:2)
首先,if
语句只有在满足条件时才执行下一个语句:
if(textBox1.Text != "")
X = Convert.ToDouble(textBox1.Text); // only run if 'if' is true
X *= 0.001; // always run
label3.Text = "metros"; // always run
if与下一行相关联。如果您希望以下所有代码与if
相关联,则需要打开一个块:
if(textBox1.Text != "")
{
X = Convert.ToDouble(textBox1.Text);
X *= 0.001;
label3.Text = "metros";
}
为了防止出现这种情况,我建议对单行if
语句采用一致的方式:
if (something) SomeStatement(); // same line
if (something)
SomeStatement(); // indented
if (something)
{
SomeStatement(); // single statement block
}
有些按钮可能无法正常工作,因为事件处理程序方法与事件之间的链接已被破坏。您应该打开设计器并确保每个按钮都分配了Click
处理程序。
关于问题的组合框部分:ComboBox.SelectedItem
允许您获取或设置所选项目。或者,您可以使用ComboBox.SelectedIndex
来获取或设置所选项目的索引。