65.9K
CodeProject 正在变化。 阅读更多。
Home

状态消息的扩展接口

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.77/5 (25投票s)

2002年4月9日

3分钟阅读

viewsIcon

196155

downloadIcon

319

向菜单添加扩展属性,以便在用户选择不同菜单选项时提供自动状态栏消息。

MFC Updating Status Bar Automatically

问题

我们习惯于在 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# 属性,您将创建一对 SetGet 消息。

接口的源代码非常简单,但为了使本文保持在基本水平,我将避免讨论实际的编码过程。

1. 将 StatusMessage 控件添加到 .NET

Adding the Component to the Toolbox

将扩展接口 DLL (ExtendedInterface.DLL) 复制到您想要的目标后,您需要将其永久添加到您的工具箱中。

  1. 打开工具箱后,右键单击列表选择“自定义工具箱”。
  2. 选择 .NET Framework 组件 选项卡
  3. 点击 浏览...
  4. 点击 ExtendedInterface.DLL
  5. 点击**确定**。

工具箱应该有两个新组件:StatusMessageToolBarFunction

添加 StatusMessage 支持就像将 StatusMessage 组件拖到您的窗体上一样简单。该组件将出现在您的窗体下方。

另一个组件 ToolBarFunction 将在以后的文章中讨论。

2. 将组件添加到您的当前项目

Updating the StatusBar

您还需要从您的工具箱中拖动一个 StatusBar 到您的窗体上。确保至少添加一个 StatusBarPanel 到您的 StatusBar 中。

  1. 显示您的 StatusBar 的属性。
  2. 单击“Panels”集合并添加至少一个面板。随意命名,我使用了 StatusMessage
  3. 确保将 AutoSize 设置为 Spring
  4. 单击“确定”关闭集合。

3. 更改 StatusMessage 属性

Modifying the StatusBar properties

您需要修改您的 StatusMessage 组件以指向您创建的 StatusBarPanel

  1. 显示您的 StatusMessage 的属性。
  2. 单击 StatusBar 属性,并使用组合下拉列表找到您想要使用的 StatusBarPanel

4. 将消息添加到您的菜单

Updating the text on the menus

现在单击您菜单中的每个项目。在 杂项 类别下,您现在将拥有一个名为 StatusMessage 的新属性。

输入您希望显示在每个 MenuItem 状态栏中的文本。

5. 测试您的应用程序

瞧!!您的 .NET 应用程序现在支持您的状态栏!

Sample Image

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.