我的组合框有问题,我想做的是某种检查。 因此,如果有可用的串行端口,它应该出现在文本框中。
这是我的代码
private void LoadComportName()
{
if (_comPortComboBox.Contains(SerialPort.GetPortNames()))
{
_comPortComboBox.DataSource = SerialPort.GetPortNames();
}
}
我想我错过了一些让这项工作成功的东西。提前致谢
编辑 我会更好地解释它,因为它不是很清楚我想要什么, 我希望它检查是否有可用端口,如果没有,它必须进入组合框,否则组合框必须说“没有可用端口”之类的内容。但我想我做得很简单
最佳答案
你还没有调用DataBind
:
_comPortComboBox.DataBind();
您可能还缺少 DisplayMember
和 ValueMember
属性。
_comPortComboBox.DisplayMember = "SerialPortName";
_comPortComboBox.ValueMember = "SerialPortValue";
这些应该在调用 DataBind
方法之前设置。
编辑(来自您的评论):
假设 GetPortNames
返回一个集合。
var availablePorts = SerialPort.GetPortNames();
if (availablePorts != null && availablePorts.Any()) {
// Bind to the available ports.
} else {
_comPortComboBox.Text = "No Ports are available";
}
关于c# - 组合框问题c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18695588/