gpt4 book ai didi

c# - 组合框项目未显示但已设置

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:47 25 4
gpt4 key购买 nike

我正在用项目更新我的组合框,第一次打开表单时它工作正常,但第二次,它正在设置值,但它们没有显示。

combo.Items.Clear();
int selectedIndex = -1;
foreach(var item in itemstoadd)
{
int index = combo.Items.Add(item.Name + " - " + item.Description);
if (item.Name.Equals(itemToSelect))
{
selectedIndex = index;
}
}
combo.SelectedIndex = selectedIndex;

所以在第二次 combo.Items 的计数为 7 并且所有值都有效。但是当方法完成并且表单重绘时,项目列表尚未更新。

我环顾了 stackoverflow,找不到适合我的东西。

它在正确的线程上,我只能说出 1 个实例。我试过 BeginUpdate()/EndUpdate()更新()暂停/恢复布局

但仍然没有任何内容会更新此项目显示。

itemtoSelect 被传递到这个方法中,这是从另一个组合框事件 selectedindexchanged 调用的,最初是在我设置显示时调用的。

我在代码中命中了调试点,所有项目都在第一个窗口打开和第二个窗口打开时设置。我认为我唯一不能 100% 确定的是组合框是否是正确的组合框,就好像它是第一个窗口打开时的旧组合框一样。我想我可以用 gethashcode() 检查这个是否有另一种方法来检查对象的引用以确认它是否是我认为的对象?

最佳答案

当您清除 Combo.Items 时,它会重置 SelectedIndex。然后,当您进行赋值 combo.SelectedIndex = selectedIndex; 时,它会生成一个新的 SelectedIndexChanged 事件,即使您将其设置为原始值。如果您尚未完成第一个 SelectedIndexChanged 处理程序调用的执行,这可能会导致问题。

关于c# - 组合框项目未显示但已设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27362229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com