C# 我的转换器应用程序中的事件处理程序不工作
这是我目前掌握的代码:C# 我的转换器应用程序中的事件处理程序不工作,c#,visual-studio-2008,C#,Visual Studio 2008,这是我目前掌握的代码: public partial class Form2 : Form { public Double X; public Form2() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { if(textBox1.Text != "") X = Convert
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时起作用,如果我选择其他按钮之一进行转换,它将什么也不做
有人知道怎么回事吗
还有一个附带问题,如何从组合框中选择项?首先,如果满足条件,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
}
可能是因为事件处理程序方法和事件之间的链接已断开,所以某些按钮无法工作。您应该打开设计器并确保每个按钮都指定了一个单击处理程序
关于问题的组合框部分:ComboBox.SelectedItem允许您获取或设置所选项目。或者,您可以使用ComboBox.SelectedIndex获取或设置所选项目的索引。这是一个常见问题。有些人总是使用大括号来防止它,即使是单行语句。就我个人而言,我把一行语句放在if的同一行。@Madcowe如果你缩进块,那么它会更清晰。没有缩进是发生了什么的一个明显迹象。顺便说一句,VS将主要为您完成这项工作,详细信息可在工具|选项|文本编辑器| C下自定义。@Madcowe:检查事件处理程序是否绑定到属性窗口的事件部分的按钮。@Madcowe:好的,单击一个不起作用的按钮,转到属性窗口。您应该会看到一个小图标,看起来像“事件”的闪电工具提示-单击该图标。向下滚动至单击事件。确保它旁边列出的方法是单击按钮时要运行的方法。@Madcowe我还认为有更好的方法来测试像if这样的空文本!String.isNullOrEmptyTextBox1.Text,如果{!Char.IsDigite.KeyChar e.handled=true;},则将o TextBox1置于按键事件上