当由其它应用程序提供的对象在窗体中被激活时,有许多的方法让对象的菜单与工具栏出现在容器窗体内;然而,需要规定它们将如何显示。这一过程叫做用户界面协调,因为 Visual Basic 与已经链接或嵌入的对象必须协调容器窗体中的空间。
通过设置窗体的 NegotiateMenus 属性可以决定一个链接或嵌入的对象的菜单是否出现在容器窗体中。如果子窗体的 NegotiateMenus 属性置为 True(缺省),而且容器有一个定义的菜单栏,那么,当这个对象被激活时,它的菜单就放置在容器的菜单栏中。如果容器没有菜单栏,或者 NegotiateMenus 属性被设置为 False,那么,当这个对象激活时对象的菜单将不出现。
注意 NegotiateMenus 属性不
适用于 MDI 窗体。
MDI 窗体的 NegotiateToolbars 属性决定了链接或嵌入对象的工具栏是不固定的调色板还是被放置在父窗体上。这种性能不要求工具栏出现在 MDI 父窗体上。如果 MDI 窗体的 NegotiateToolbars 属性设为 True,则对象的工具栏出现在 MDI 父窗体上。如果 NegotiateToolbars 设为 False,则对象的工具栏就为不固定的调色板。
注意 NegotiateToolbars 属性只用于 MDI 窗体。
如果 MDI 窗体包含工具栏,它通常被包含在父窗体的 PictureBox 控件中。图片框的 Negotiate 属性决定了被激活时容器的工具栏是继续显示还是被对象的工具栏所代替。如果 Negotiate 设置为 True,则除了容器的工具栏外还显示对象的工具栏。如果 Negotiate 设置为 False,则对象的工具栏代替容器的工具栏。
注意 菜单与工具栏的协调只发生在支持现场激活的可插入对象之上。有关现场激活的详细内容,请参阅“用部件编程”。
用以下过程可以看到这三个属性如何交互作用。
要执行菜单与工具栏的协调,请按照以下步骤执行: