我本可以发誓我已经在我的程序的早期版本上工作,但现在我似乎无法让它工作。
在我的表单上,我有一个ComboBox,我希望用户选择的值可以全局访问(在另一个C#程序上),这样我就可以用它来修改我的串口的配置设置。我想要的是下面的内容,我将如何修改我的表单,并创建一个全局变量来使其工作?提前谢谢
同样对于它的价值,我确实在Stack和其他论坛上检查了各种不同的线程,并尝试了一些建议,但我的编译器一直出现错误
SerialPort slavePort = new SerialPort(ComPortComboBox.SelectedItem)
答案 0 :(得分:1)
SerialPort
构造函数需要一个字符串。 SelectedItem
是object
。毫无疑问,你得到的错误是:
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
。
所以你有两个选择:
使用SelectedItem
,但您需要将其转换为string
:
SerialPort slavePort = new SerialPort(ComPortComboBox.SelectedItem.ToString());
使用Text
,它会自动将所选项目作为string
返回:
SerialPort slavePort = new SerialPort(ComPortComboBox.Text);