Visual Studio 2022在尝试添加菜单项时给出错误“'Site' must not be null to access a required service.”

jk9hmnmh  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(137)

我有一个contextMenuStrip,经常(不总是,但我还没有注意到一个可重复的模式)我得到错误对话框:
要访问所需的服务,“站点”不能为空。
当尝试在“此处键入”字段中键入时。当我把光标点击到字段中时,它就发生了。


的数据
有人知道是什么引起的吗?

nfzehxib

nfzehxib1#

这让我的问题消失了。我不知道是哪一步做的,但现在似乎工作正常。
首先,设计器所做的就是为您编写[FormName].Designer.cs页面。你可以随时把条目的子项在自己和VS似乎是罚款。我开始这样做时,将一个具有菜单子项(在VS22中工作得很好)的旧项目作为模型。
1.在Designer文件底部的对象定义中,添加菜单项的声明。
1.在隐藏部分的示例化中,添加一行以创建菜单项。
1.在这一点上,我注意到旧的,工作项目的所有示例化都以this为前缀(即this.LogFileToolStripMenuItem=new ToolStripMenuItem)和第二个菜单项,需要子菜单项,我添加了this,并回到设计器,一切正常工作(并继续这样做,没有错误信息)从那里出来。我不知道是哪一部分修复了它,但是当我回到设计器文件中查看如果我删除this会发生什么时,设计器编辑器已经剥离了this,但一切仍然正常。
1.您需要为工具条菜单项设置三个属性。您可能可以复制现有的一个,然后更改内容以适合新的toolstripmenuitem
1.你需要做的最后一件事是将子菜单添加到父菜单中。在父级的属性定义部分中,添加AddRange行:
cmsLogging.DropDownItems.AddRange(new ToolStripItem[] { cmsLogging_LogFile, cmsLogging_ShowLogFile, cmsLogging_ShowLogFileDirectory });
在此之后,重新启动表单设计器,菜单项出现,一切看起来正常。作为奖励,错误消息消失了。对我很有效。

相关问题