如何从C#程序访问Form的ComboBox selectedItem

时间:2014-08-20 23:19:04

标签: c# forms combobox

我本可以发誓我已经在我的程序的早期版本上工作,但现在我似乎无法让它工作。

在我的表单上,我有一个ComboBox,我希望用户选择的值可以全局访问(在另一个C#程序上),这样我就可以用它来修改我的串口的配置设置。我想要的是下面的内容,我将如何修改我的表单,并创建一个全局变量来使其工作?提前谢谢

同样对于它的价值,我确实在Stack和其他论坛上检查了各种不同的线程,并尝试了一些建议,但我的编译器一直出现错误

SerialPort slavePort = new SerialPort(ComPortComboBox.SelectedItem)

4 个答案:

答案 0 :(得分:1)

SerialPort构造函数需要一个字符串。 SelectedItemobject。毫无疑问,你得到的错误是:

cannot convert from 'object' to 'string'

因此,将选定的组合框项目转换为字符串:

SerialPort slavePort = new SerialPort(ComPortComboBox.SelectedItem.ToString());

答案 1 :(得分:1)

一种简单的方法:

SerialPort slavePort = new SerialPort(Convert.ToInt32(ComPortComboBox.SelectedText));

答案 2 :(得分:1)

试试这个:

SerialPort slavePort = new SerialPort(Convert.ToInt32(ComPortComboBox.Text));

答案 3 :(得分:1)

SerialPort类有2个重载,带有1个参数。其中一个需要IContainer,另一个需要string,而ComPortComboBox.SelectedItem会返回object。因此,如果要使用第二个构造函数,则必须将所选项目强制转换为string

所以你有两个选择:

  1. 使用SelectedItem,但您需要将其转换为string

    SerialPort slavePort = new SerialPort(ComPortComboBox.SelectedItem.ToString());
    
  2. 使用Text,它会自动将所选项目作为string返回:

    SerialPort slavePort = new SerialPort(ComPortComboBox.Text);