C#中关于ContextMenuStrip批量添加Item的问题

最近在开发项目时遇到,当cms1中只有一个item时,走以下逻辑不报错,当cms1中有多个item时,会出现以下报错:

经过测试发现,当cms1中一个item添加到cms2中后,cms1中会自动减少这个item,如下图:

报错的原因就找到了,即图1中,第一次进入循环后,i=0,cms1中索引0处的item被添加到了cms2中,cms1中剩余一个item,第二次进入循环后,i=1,cms1中索引1处没有item,引发报错。我们可以用下图的方式实现这个功能,即从后往前去添加:

相关推荐
全栈小精灵6 分钟前
Winform入门
开发语言·机器学习·c#
心静财富之门6 分钟前
退出 for 循环,break和continue 语句
开发语言·python
txinyu的博客8 分钟前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
Mr -老鬼24 分钟前
Rust适合干什么?为什么需要Rust?
开发语言·后端·rust
予枫的编程笔记27 分钟前
【Java集合】深入浅出 Java HashMap:从链表到红黑树的“进化”之路
java·开发语言·数据结构·人工智能·链表·哈希算法
ohoy33 分钟前
RedisTemplate 使用之Set
java·开发语言·redis
mjhcsp33 分钟前
C++ 后缀数组(SA):原理、实现与应用全解析
java·开发语言·c++·后缀数组sa
hui函数34 分钟前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·pip
云栖梦泽43 分钟前
易语言Windows桌面端「本地AI知识管理+办公文件批量自动化处理」双核心系统
开发语言
用户298698530141 小时前
C#: 如何自动化创建Word可填写表单,告别手动填写时代
后端·c#·.net