CommandSet 类
表示可在域特定语言 (dsl) 的菜单命令的子集。 在 TheLanguageCommandSet 重写方法修改这些命令的处理方式。
此 API 不兼容 CLS。
继承层次结构
System.Object
System.MarshalByRefObject
Microsoft.VisualStudio.Modeling.Shell.CommandSetLibrary
Microsoft.VisualStudio.Modeling.Shell.CommandSet
命名空间: Microsoft.VisualStudio.Modeling.Shell
程序集: Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0(在 Microsoft.VisualStudio.Modeling.Sdk.Shell.11.0.dll 中)
语法
声明
<CLSCompliantAttribute(False)> _
Public MustInherit Class CommandSet _
Inherits CommandSetLibrary
[CLSCompliantAttribute(false)]
public abstract class CommandSet : CommandSetLibrary
CommandSet 类型公开以下成员。
构造函数
名称 | 说明 | |
---|---|---|
CommandSet | 初始化 CommandSet 类的新实例。 |
页首
属性
名称 | 说明 | |
---|---|---|
CurrentDocData | (继承自 CommandSetLibrary。) | |
CurrentDocumentSelection | (继承自 CommandSetLibrary。) | |
CurrentDocView | 获取活动视图文档窗口。 | |
CurrentModelingDocView | (继承自 CommandSetLibrary。) | |
CurrentSelection | (继承自 CommandSetLibrary。) | |
MenuService | (继承自 CommandSetLibrary。) | |
MonitorSelection | (继承自 CommandSetLibrary。) | |
ServiceProvider | (继承自 CommandSetLibrary。) | |
SingleDocumentSelection | (继承自 CommandSetLibrary。) | |
SingleSelection | (继承自 CommandSetLibrary。) |
页首
方法
名称 | 说明 | |
---|---|---|
CanDeleteSelectedItems | ,如果选定的项目中删除,则返回 true。 (继承自 CommandSetLibrary。) | |
CreateObjRef | 安全关键。创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。) | |
DeleteSelectedItems | 删除选定项。 (继承自 CommandSetLibrary。) | |
Equals | 确定指定的对象是否等于当前对象。 (继承自 Object。) | |
Finalize | 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) | |
GetHashCode | 用作特定类型的哈希函数。 (继承自 Object。) | |
GetLifetimeService | 安全关键。检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。) | |
GetMenuCommands | 显示在快捷菜单上的命令。 (重写 CommandSetLibrary.GetMenuCommands()。) | |
GetType | 获取当前实例的 Type。 (继承自 Object。) | |
Initialize | 初始化设置的命令。调用 GetMenuCommands 和缓存结果。 (继承自 CommandSetLibrary。) | |
InitializeLifetimeService | 安全关键。获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。) | |
IsAnyDocumentSelectionCompartment | ,如果任何一个选定内容中的项列表是隔离舱,则为 true。 (继承自 CommandSetLibrary。) | |
IsAnyDocumentSelectionMoveableHostShape | 则为 true,如果任何一个选定内容中的项列表是可移动的宿主形状,不能删除。 (继承自 CommandSetLibrary。) | |
IsAnyDocumentSelectionUndeletable | ,如果任何一个在选定的形状项列表不能删除,则为 true。 (继承自 CommandSetLibrary。) | |
IsCurrentDiagramEmpty | 关系图,如果没有子元素,则为 true。 (继承自 CommandSetLibrary。) | |
IsDiagramSelected | ,如果关系图中选择,则为 true。 (继承自 CommandSetLibrary。) | |
IsExpandableShape | 验证用户是否可以展开该形状显示字段的特性。 | |
IsSingleDocumentSelection | ,如果只有在活动中的选定的项目文档,则为 true。 (继承自 CommandSetLibrary。) | |
IsSingleSelection | ,如果只有在活动中的选定的项目文档窗口或工具窗口,则为 true。 (继承自 CommandSetLibrary。) | |
MemberwiseClone() | 创建当前 Object 的浅表副本。 (继承自 Object。) | |
MemberwiseClone(Boolean) | 创建当前 MarshalByRefObject 对象的浅表副本。 (继承自 MarshalByRefObject。) | |
ProcessOnMenuDeleteCommand | 调用,当用户单击删除命令或按 delete 键。删除项。重写此方法更改此行为。 | |
ProcessOnMenuEditCompartmentItemCommand | 调用,当用户在隔离舱形状的项单击编辑菜单命令。输入该文本编辑模式。重写此方法更改此行为。 | |
ProcessOnMenuExpandCollapseCommand | 调用,当用户展开或折叠分配给形状属性的列表。 | |
ProcessOnMenuPageSetupCommand | 打开页面设置对话框。重写此方法更改此行为。 | |
ProcessOnMenuPrintCommand | 打开 " 打印 " 对话框。重写此方法更改此行为。 | |
ProcessOnMenuPrintPreviewCommand | 打开 " 打印预览 " 窗口。重写此方法更改此行为。 | |
ProcessOnMenuRerouteLineCommand | 还原连接的默认位置在两个形状之间的。重写此方法更改此行为。 | |
ProcessOnMenuResetDecoratorLocationCommand | 重写此方法处理重置修饰器位置菜单命令。 | |
ProcessOnMenuResetDecoratorSizeCommand | 重写此方法处理重置修饰器范围菜单命令。 | |
ProcessOnMenuSelectAllCommand | 调用,当用户在 " 编辑 " 菜单中单击选择所有命令或按 ctrl。选择关系图上的所有形状。重写方法更改此行为。 | |
ProcessOnStatusDeleteCommand | 确定删除命令是否出现在上下文菜单。调用,当用户右击关系图。 | |
ProcessOnStatusEditCompartmentItemCommand | 确定编辑命令是否出现在上下文菜单。 | |
ProcessOnStatusExpandCollapseCommand | 确定展开或折叠命令是否出现在上下文菜单。调用,当用户右击关系图。 | |
ProcessOnStatusPageSetupCommand | 确定页面设置命令是否出现在 " 文件 " 菜单。调用,当用户单击 " 文件 " 菜单,当关系图处于活动状态时。 | |
ProcessOnStatusPrintCommand | 确定打印 " 命令是否出现在 " 文件 " 菜单。调用,当用户单击 " 文件 " 菜单,当关系图处于活动状态时。 | |
ProcessOnStatusPrintPreviewCommand | 确定打印预览命令是否出现在菜单。调用,当用户单击 " 文件 " 菜单,当关系图处于活动状态时。 | |
ProcessOnStatusRerouteLineCommand | 确定重新路由命令是否出现在上下文菜单。调用,当用户右击关系图。 | |
ProcessOnStatusResetDecoratorLocationCommand | 确定其他修饰器位置命令是否出现在上下文菜单。调用,当用户右击关系图。 | |
ProcessOnStatusResetDecoratorSizeCommand | 确定重置修饰器范围命令是否出现在菜单。调用,当用户右击关系图。 | |
ProcessOnStatusSelectAllCommand | 确定选择所有命令是否出现在菜单。调用,当用户单击 " 编辑 " 菜单,当关系图处于活动状态时。 | |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
备注
可以修改 DSL 如何响应某些命令。 可以修改的命令包括在快捷菜单上的命令和文件中的某些命令和编辑菜单。
在 DslPackage 项目中,您将找到个生成的文件称为 CommandSet.cs,包含调用 AMP_LT 的类的分部声明TheLanguageNameAMP_GTCommandSet。 若要修改标准菜单命令的行为,请将同一个类的分部定义的其他文件。
此类,可以重写基类中定义的方法。
备注
验证在新文件中的命名空间相同。在生成的 CommandSet.cs 的命名空间。在新文件,那么,当您键入 “重写”在类声明中,您应看到您可以重写方法的列表。
每个命令都有 ProcessOnStatus… 方法和 ProcessOnMenu… 方法。 ProcessOnStatus… 方法确定是否出现在右击菜单。 组命令参数的可见属性确定是否可见,并将启用的属性确定菜单项是否启用或灰色。
ProcessOnMenu… ,当用户单击菜单项时,方法执行命令。
备注
可以在 Commands.vsct 文件的附加命令。
有关更多信息,请参见 如何:向快捷菜单中添加命令。
示例
该文件将添加到 DslPackage 项目。 禁止 DSL 的用户一次删除多个元素。
// In the DslPackage project.
namespace Company.Language1 // Check this is correct after creating the file.
{
internal partial class Language1CommandSet // Same class as the generated class.
{
/// <summary>
/// Called when user right-clicks on the diagram or clicks the Edit menu.
/// </summary>
/// <param name="command"></param>
protected override void ProcessOnStatusDeleteCommand(System.ComponentModel.Design.MenuCommand command)
{
if (this.CurrentSelection.Count > 1)
{
// If user has selected more than one item, Delete is greyed out.
command.Enabled = false;
}
else
{
// Otherwise, default behavior.
base.ProcessOnStatusDeleteCommand(command);
}
}
/// <summary>
/// Called when user presses Delete key or clicks the Delete command on a menu.
/// </summary>
protected override void ProcessOnMenuDeleteCommand()
{
// Allow users to delete only one thing at a time.
if (this.CurrentSelection.Count <= 1)
{
base.ProcessOnMenuDeleteCommand();
}
}
}
}
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
请参见
参考
Microsoft.VisualStudio.Modeling.Shell 命名空间