我不能让Combobox重绘

时间:2016-02-02 16:00:41

标签: c# .net combobox

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

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

我知道我不能循环结果列表并重新填充它但我不能再认为有更好的方法。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用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);
            }
        }
    }