【问题标题】:Displaying Text from Combobox Selections C#显示来自组合框选择的文本 C#
【发布时间】:2015-09-23 19:36:10
【问题描述】:

我正在尝试使用 C# 在 VS 2013 中创建一个简单的 Windows 窗体应用程序。该表单有 2 个组合框,其中包含一些可供选择的字符串。我试图根据这些选择在 2 个文本框中显示结果,但是当我运行程序时,结果不显示。我将代码放在从组合框中选择值的方法中。这是我所拥有的:

private void SiteList_SelectedValueChanged(object sender, EventArgs e)
{
    string SiteSelect = SiteList.SelectedValue.ToString();
    string DateSelect = dateList.SelectedValue.ToString();


   if (SiteSelect == "Alaska"  &&  DateSelect = "January 2014")
   {
       actualResults.Text = "$391,015.92";
       estimateResults.Text = "No Estimate Available";
   } 
}

【问题讨论】:

  • 如果你在你的if行上放一个断点并调试,SiteSelect和DateSelect的值是多少?
  • 显示项目是如何添加到ComboBox

标签: c# winforms combobox


【解决方案1】:

使用此SelectedItem 而不是SelectedValue

喜欢这个

string Site = SiteList.SelectedItem.ToString();
string Date = dateList.SelectedItem.ToString();

【讨论】:

    【解决方案2】:

    试试这个:

    string SiteSelect = SiteList.SelectedItem.ToString();
    string DateSelect = dateList.SelectedItem.ToString();
    

    SelectedItem 是在组合框中选择对象的方式。值将仅选择显示字符串(我不知道为什么,但它并不总是有效)。我总是使用 SelectedItem 和 toString() 来获取对象作为字符串

    【讨论】:

    • 好的。和OP的代码有什么区别?
    • SelectedItem 是在组合框中选择对象的方式。值将仅选择显示字符串(我不知道为什么,但它并不总是有效)。我总是使用 SelectedItem 和 toString() 来获取对象作为字符串
    • 你应该在你的答案中写下那个简短的信息。请。下次记住这个。
    • 是的,很抱歉
    • 没问题。如您所见,您对此投了赞成票:-)
    【解决方案3】:

    您已订阅SelectedValueChanged 事件。
    只有通过设置DataSource 属性添加项目时才会触发此事件

    Me.ComboBox.DataSource = yourListOfItems;
    

    如果项目是手动添加的(我假设)

    Me.ComboBox.Items.Add(yourNextItem);
    

    那你需要订阅SelectionChangesCommitted事件 正如其他答案所说,使用SelectedItem 获取选定值

    因为SelectedValue,在手动添加项目的情况下,会返回null

    检查这个:ComboBox SelectedItem vs SelectedValue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多