VS2012中C# WinForm添加PictureBox报错求助:命令句柄已存在
解决VS2012 WinForm添加第二个PictureBox时的命令冲突错误
兄弟,这个VS2012 WinForm设计器的坑我之前踩过!你遇到的There is already a command handler for the menu command '5efc7975-14bc-11cf-9b2b-00aa00573819 : 26'错误,本质是设计器的缓存或配置出现了命令绑定冲突,下面给你几个靠谱的解决办法:
清理项目缓存文件
先关闭VS,找到你的项目根目录,把以下几个文件夹直接删除:binobj.vs(这个是隐藏文件夹,需要先显示隐藏文件才能看到)
删除后重新打开项目,再尝试添加第二个PictureBox。设计器缓存损坏是这类奇怪错误的常见原因,清理后基本能解决大部分情况。
检查并修复Designer.cs文件
有时候重复操作会导致Form的设计器代码里意外生成了重复的命令注册逻辑:- 右键你的Form文件,选择「查看代码」
- 切换到
[你的Form名].Designer.cs文件 - 搜索错误提示里的GUID
5efc7975-14bc-11cf-9b2b-00aa00573819 - 如果发现有重复的代码行,删掉多余的那一行,保存后重新编译项目
重置VS2012的用户设置
如果上面两种方法都没用,可能是VS的用户配置文件出了问题:
打开VS2012,点击顶部菜单的「工具」->「导入和导出设置」,选择「重置所有设置」,按照向导完成重置。重置后VS会回到默认状态,能解决很多设计器相关的诡异问题。手动代码添加PictureBox(绕开设计器)
要是暂时不想折腾设计器,直接用代码创建第二个PictureBox也可以,在Form的构造函数里(InitializeComponent();之后)添加这段代码:// 创建第二个PictureBox PictureBox secondPicBox = new PictureBox(); // 设置图片(替换成你的图片路径,也可以用资源文件里的图片) secondPicBox.Image = Properties.Resources.你的图片资源名; // 设置位置和大小 secondPicBox.Location = new Point(50, 50); secondPicBox.Size = new Size(300, 200); // 设置图片显示模式 secondPicBox.SizeMode = PictureBoxSizeMode.StretchImage; // 添加到Form的控件集合里 this.Controls.Add(secondPicBox);这种方式完全不需要通过设计器操作,能直接绕开那个命令冲突的问题。
内容的提问来源于stack exchange,提问作者userkun
相关产品推荐
相关产品推荐

