状态消息的扩展接口






4.77/5 (25投票s)
2002年4月9日
3分钟阅读

196155

319
向菜单添加扩展属性,
问题
我们习惯于在 MFC 中使用的一些功能在 .NET 架构中缺失了。其中之一是状态栏的自动使用。当用户在菜单中移动时,描述将出现在状态栏中。
.NET 架构允许您通过覆盖 MenuItem
类来重复此功能。不幸的是,这是一个手动过程,需要一个大型的 case 语句。
希望我们能够通过一个快速简单的扩展属性来克服这个缺点。此外,它还为您提供了一个创建自己的扩展接口的示例。
背景
当与接口结合使用时,IExtenderProvider
是一个非常强大的工具。语法非常简单。
[ProvideProperty( "StatusMessage", typeof(Component)) ]
public class StatusMessage : Component, IExtenderProvider
{
public void SetStatusMessage( Component pComponent, string strMessage )
...
public string GetStatusMessage( Component pComponent )
...
}
ProvideProperty
标签告诉接口您正在向当前开发中的所有组件添加一个名为“StatusMessage
”的属性。类似于 C# 属性,您将创建一对 Set
和 Get
消息。
接口的源代码非常简单,但为了使本文保持在基本水平,我将避免讨论实际的编码过程。
1. 将 StatusMessage 控件添加到 .NET
将扩展接口 DLL (ExtendedInterface.DLL) 复制到您想要的目标后,您需要将其永久添加到您的工具箱中。
- 打开工具箱后,右键单击列表选择“自定义工具箱”。
- 选择 .NET Framework 组件 选项卡
- 点击 浏览...
- 点击 ExtendedInterface.DLL
- 点击**确定**。
工具箱应该有两个新组件:StatusMessage
和 ToolBarFunction
。
添加 StatusMessage
支持就像将 StatusMessage
组件拖到您的窗体上一样简单。该组件将出现在您的窗体下方。
另一个组件 ToolBarFunction
将在以后的文章中讨论。
2. 将组件添加到您的当前项目
您还需要从您的工具箱中拖动一个 StatusBar
到您的窗体上。确保至少添加一个 StatusBarPanel
到您的 StatusBar
中。
- 显示您的
StatusBar
的属性。 - 单击“
Panels
”集合并添加至少一个面板。随意命名,我使用了StatusMessage
。 - 确保将
AutoSize
设置为Spring
。 - 单击“确定”关闭集合。
3. 更改 StatusMessage 属性
您需要修改您的 StatusMessage
组件以指向您创建的 StatusBarPanel
。
- 显示您的
StatusMessage
的属性。 - 单击
StatusBar
属性,并使用组合下拉列表找到您想要使用的StatusBarPanel
。
4. 将消息添加到您的菜单
现在单击您菜单中的每个项目。在 杂项 类别下,您现在将拥有一个名为 StatusMessage
的新属性。
输入您希望显示在每个 MenuItem
状态栏中的文本。
5. 测试您的应用程序
瞧!!您的 .NET 应用程序现在支持您的状态栏!
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。