繁体   English   中英

我应该使用哪个ComboBox事件处理程序?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM