我有一个应用程序,它是一个准 IDE,其中 TreeView 充当解决方案资源管理器。用户是设计师的屏幕布局可能看起来像这样。
Root
Menus
MainMenu
MenuItem1
Button Bars
MainBar
Button1
我最初遇到上下文菜单的问题。在上面的示例中,MenuItem1 没有上下文菜单,但 MainMenu 有。好吧,MenuItem1 将从 MainMenu 继承上下文菜单。我通过创建一个空的上下文菜单并将其分配给 MenuItem1 来解决这个问题。不过,我想要更优雅的东西。
我对工具提示有同样的问题。如果我将一个分配给 MainMenu,那么 MenuItem1 将继承分配给 MainMenu 的那个。我尝试将 MenuItem1 工具提示设置为 null,但什么也没做。如果我将它设置为“”,它会覆盖 MainMenu 工具提示的空字符串,但是当您将鼠标悬停在 MenuItem1 上时,会出现一个小的空工具提示框。我认为如果它是一个空字符串,系统会足够聪明,不会显示该框,但显然不是。
如何防止孩子从父母那里继承上下文菜单和工具提示属性?
更新
仍然有这个问题。我使用 Snoop 分析了我的项目,它表明这些属性是继承的,但我仍然看不到任何破坏继承的解决方案。
我能想到的唯一问题是,对于每个工具提示来处理 ToolTipOpening 事件并检查字符串,如果它没有长度,则立即关闭它。不过一定有更好的方法。