【问题标题】:Can't save selected Combobox Item because SelectedText is empty String. Why?无法保存选定的组合框项,因为 SelectedText 是空字符串。为什么?
【发布时间】:2017-10-04 02:06:46
【问题描述】:

我尝试保存一个选定的组合框项并加载它以在下次程序启动时选择它。我已经尝试使用 SelectedIndex 来保存它,但这是一个坏主意,因为索引可以在新会话中更改。所以我想使用 SelectedText 来保存选定的项目(COM 端口)。 但是当我保存它并查看文件时,它只是空的。它不保存组合框中显示的文本。为什么会这样? 这是我的代码。

        //Load Com Port List into comboBoxes
        string[] portNames = SerialPort.GetPortNames();
        foreach (var portName in portNames)
        {                
            comboBox2.Items.Add(portName);
        }

然后我从 ComboBox 中选择一个 COM 端口,并想保存它。

File.WriteAllText("portsave1", textBox18.Text + "+" + comboBox2.SelectedText);

但是,当我查看保存文件时,comboBox2.SelectedText 只是一个空字符串。为什么?!

所以当我想使用以下代码加载它时,它不起作用。

comboBox2.SelectedIndex = comboBox2.FindStringExact(comport);

【问题讨论】:

  • 您确定您使用的是 WPF 吗? WPF ComboBox 没有名为 SelectedText 的属性。
  • 我想你想要的是combobox.Text
  • 您可以尝试使用 selecteditem 但将其转换为字符串。它是否让你做 var name = combobox2.SelectedItem as string;?
  • 你试过用谷歌搜索如何使用winforms吗? google.pl/…

标签: c# combobox


【解决方案1】:

我认为您需要使用comboBox2.SelectedItem.ToString(),因为您在我假设是初始化期间添加了Items

【讨论】:

  • 你得到什么样的异常?如果未选择任何项目,SelectedItem 将是 null
  • 您应该能够检查 SelectedItem == null。或者,如果 DropDownBox.DropDownStyle == DropDownList 那么您可以在将项目添加到 DropDownList 后将 SelectedIndex 设置为 0。
  • 粘贴您在 cmets 中收到的异常。
  • @SardarAgabejli,您的保存目的地"portsave1" 是一个变量吗?如果是这样,请使用我们的报价。如果它不是变量,请尝试使用完全限定路径。另外,您要节省什么活动?选择更改?
  • 这似乎是多余的,但是将其复制并粘贴到您当前拥有的内容上:File.WriteAllText("portsave1", textBox18.Text + "+" + comboBox2.SelectedItem.ToString());
【解决方案2】:

试试

comboBox2.SelectedItem.ToString()

【讨论】:

    【解决方案3】:

    好的,非常感谢,我解决了这个问题。你所有的代码都是正确的,有很多方法,比如comboBox.TextcomboBox.Item 来保存它......我的问题是,我保存了两次,一次是在连接到秤后,一次是在表格关闭时。 .. 当 Form 关闭时,它会将选定的索引写入文件,这就是它无法工作的原因。我没有注意到这一点,并想知道为什么它不起作用。对不起,谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-23
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      相关资源
      最近更新 更多