这是我可以理解的东西。在 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/