组合框问题 c#

本文关键字:问题 组合 | 更新日期: 2023-09-27 18:30:48

我的组合框有问题,我想做的是某种检查。因此,如果有一个可用的串行端口,它应该出现在texbox中。

这是我的代码

private void LoadComportName()
{
    if (_comPortComboBox.Contains(SerialPort.GetPortNames()))
    {
        _comPortComboBox.DataSource = SerialPort.GetPortNames();
    }
}

我想我错过了一些东西来做这项工作。提前致谢

编辑我会更好地解释它,因为它不是很清楚我想要什么,我希望它检查是否有可用的端口,所以它必须进入组合框,如果不是组合框必须说"没有可用的端口"。但我想我这样做很容易

组合框问题 c#

你还没有调用DataBind

_comPortComboBox.DataBind();

您可能还缺少DisplayMemberValueMember属性。

_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"; 
  }