c# - 我无法让 Combobox 重绘

标签 c# .net combobox

这是我可以理解的东西。在 Windows 窗体中,我试图通过函数结果更新组合框。函数返回正确的结果为 List<string>但它仅在事件第一次通过时更新。这是我尝试过的。

cbDatabase.DataSource = GetServerDatabases(txbServer.Text); 
cbDatabase.Refresh(); 

我知道我不能只是循环结果列表并重新填充它,但我不能停止思考有更好的方法。

提前致谢

最佳答案

您可以只使用 foreach 循环遍历列表,或者如果您想让它更复杂一些,您可以在每次函数通过时引发一个事件并单独加载每个结果。这是我最近为完成这项工作而编写的一段代码:

    public void Camera_FoundEvent(string addr, string port)
    {
        if (InvokeRequired)
        {
            Invoke(new UpdateCameraList(Camera_FoundEvent), addr, port);
        }
        else
        {
            if (!cboCameras.Items.Contains(addr))
            {
                //if default port 80 port no. is ommitted, else add port
                string cam = (port != null) ? (addr + port) : addr;
                cboCameras.Items.Add(cam);
            }
        }
    }

关于c# - 我无法让 Combobox 重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35158112/

相关文章:

c# - 使用 Lambda 表达式进行加入和分组

c# - 记住单个页面上的状态时,使用隐藏字段总是比 session 更好吗?

c# - 如何使用 LINQ 将一个值与其先前的值进行比较?

jquery - 如何将动态源传递到 jQuery UI 组合框?

c# - 它可以返回null吗? (this.Result ==Result.OK)

c# - C# 中的阿姆达尔定律示例

c# - C# 中的多维数据结构

c# - 将枚举作为字节或文本保存到数据库

wpf - 如何防止组合框从 wpf 的列表中选择项目?

wpf:获取组合框值