[英]Which ComboBox event handler should I use?
我的代码存在这个问题,我想在总金额汇总后显示更改,用户从ComboBox
拾取钞票,但是我不确定我是否使用了正确的事件处理程序/触发函数,以及我应该进行这些转换。 我得到的错误是:
错误2事件'System.Windows.Forms.ComboBox.SelectedIndexChanged'仅出现在+ =或-= J:\\ EDPtest1 \\ EDPtest1 \\ Form1.cs的左侧100 49 EDPtest1
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (Convert.ToDouble(comboBox1.SelectedIndexChanged == total))
{
lblChange.Text = "Amount Correct";
}
else if (Convert.ToDouble(comboBox1.SelectedIndexChanged > total))
{
lblChange.Text = "Total change: " + comboBox1.SelectedIndexChanged - total;
}
else if(Convert.ToDouble(comboBox1.SelectedIndexChanged < total))
{
lblChange.Text = "Please add more money";
}
}
您应该在if
语句中使用ComboBox.SelectedItem
属性而不是SelectedIndexChanged
事件 。 并且根据您的评论,您将收到此错误:
运算符“>”不能应用于类型为“对象”和“双精度”的操作数
您应该将第二个操作数转换为double
:
if (Convert.ToDouble(comboBox1.SelectedItem) == (double) total)
{
lblChange.Text = "Amount Correct";
}
if (Convert.ToDouble(comboBox1.SelectedValue) == (total.ToDouble()))
{
lblChange.Text = "Amount Correct";
}
SelectedIndexChanged
是你无法比较,与变量的事件total
假设变量的类型是double
你,你需要在这里做什么,你需要转换的SelectedText /的SelectedValue将翻一番,然后做比较。 可能double.TryParse()
比Convert.ToDouble()
更适合将字符串转换为double。 我在下面的代码段中包含了所有这些要点:
double input;
if (double.TryParse(comboBox1.SelectedText, out input)) // can use comboBox1.SelectedValue also if you are binding the values
{
if (input == total)
{
lblChange.Text = "Amount Correct";
}
else if (input > total)
{
lblChange.Text = "Total change: " + (input - total);
}
else if (input < total)
{
lblChange.Text = "Please add more money";
}
}
else
{
lblChange.Text = "Please add more money";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.