为了账号安全,请及时绑定邮箱和手机立即绑定

选中的组合框文本出现问题

选中的组合框文本出现问题

C#
GCT1015 2023-07-09 10:02:32
我希望在检查复选框时更改组合框文本,但它有某种延迟。我认为问题在于ItemCheckEventHandler,如果是的话我该怎么解决?我尝试过更换:private void cclb_ItemCheck(object sender, ItemCheckEventArgs e) {    if (ccbParent.ItemCheck != null) {        ccbParent.ItemCheck(sender, e);        ccbParent.Text = GetCheckedItemsStringValue();    }}和 :private void cclb_ItemCheck(object sender, ItemCheckEventArgs e){    List<string> checkedItems = new List<string>();    foreach (var item in cclb.CheckedItems) {        checkedItems.Add(item.ToString());    }    if (e.NewValue == CheckState.Checked) {        checkedItems.Add(cclb.Items[e.Index].ToString());    }    else {        checkedItems.Remove(cclb.Items[e.Index].ToString());    }    foreach (string item in checkedItems) {        ccbParent.ItemCheck(sender, e);        ccbParent.Text = GetCheckedItemsStringValue();    }}
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

您不需要 cclb_ItemCheck 事件中的所有这些代码。现在你有延迟,因为每次你检查某些东西时,你都会有两个完全不必要的 foreach 循环。

如果我正确理解你的问题,你的 cclb_ItemCheck 应该看起来像这样:

private void ccb_ItemCheck(object sender, ItemCheckEventArgs e) {
    CCBoxItem item = ccbParent.Items[e.Index] as CCBoxItem;
    ccbParent.Text += item.Name.toString() + ", ";
}

或者类似的东西......我建议您创建一个新项目并按照您提供的博客文章链接中的示例进行操作。


查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信