表示命令子集,其可在特定域语言中的菜单中使用。 重写 YourLanguageCommandSet 方法以修改如何处理这些命令。
此 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.12.0(在 Microsoft.VisualStudio.Modeling.Sdk.Shell.12.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 命令或按 Delete 键时调用。删除项。重写此方法以更改此行为。 |
![]() |
ProcessOnMenuEditCompartmentItemCommand | 当该用户单击隔离舱形状中的项的编辑菜单命令时调用。输入文本编辑状态。重写此方法以更改此行为。 |
![]() |
ProcessOnMenuExpandCollapseCommand | 当该用户扩展或折叠分配给该形状的属性的列表的调用。 |
![]() |
ProcessOnMenuPageSetupCommand | 打开“页面设置”对话框。重写此方法以更改此行为。 |
![]() |
ProcessOnMenuPrintCommand | 打开“打印”对话框。重写此方法以更改此行为。 |
![]() |
ProcessOnMenuPrintPreviewCommand | 打开“打印预览”窗口。重写此方法以更改此行为。 |
![]() |
ProcessOnMenuRerouteLineCommand | 还原两个形状之间的连接线的默认位置。重写此方法以更改此行为。 |
![]() |
ProcessOnMenuResetDecoratorLocationCommand | 重写此方法以推进 Reset Decorator Location 菜单命令。 |
![]() |
ProcessOnMenuResetDecoratorSizeCommand | 重写此方法以推进 Reset Decorator Size 菜单命令。 |
![]() |
ProcessOnMenuSelectAllCommand | 当该用户在单击“编辑”菜单中选择全部命令或按 ctrl-A 时调用。选择关系图中的所有形状。重写此方法以更改此行为。 |
![]() |
ProcessOnStatusDeleteCommand | 确定删除命令是否出现在上下文菜单中。当用户在关系图中右击时调用。 |
![]() |
ProcessOnStatusEditCompartmentItemCommand | 确定编辑命令是否出现在上下文菜单中。 |
![]() |
ProcessOnStatusExpandCollapseCommand | 确定展开/折叠命令是否出现在上下文菜单中。当用户在关系图中右击时调用。 |
![]() |
ProcessOnStatusPageSetupCommand | 确定页面设置命令是否出现在文件菜单上。当该用户在关系图处于活动状态时单击“文件”菜单时调用。 |
![]() |
ProcessOnStatusPrintCommand | 确定打印命令是否出现在文件菜单上。当该用户在关系图处于活动状态时单击“文件”菜单时调用。 |
![]() |
ProcessOnStatusPrintPreviewCommand | 确定打印预览命令是否出现在菜单上。当该用户在关系图处于活动状态时单击“文件”菜单时调用。 |
![]() |
ProcessOnStatusRerouteLineCommand | 确定重新路由命令是否出现在上下文菜单中。当用户在关系图中右击时调用。 |
![]() |
ProcessOnStatusResetDecoratorLocationCommand | 确定重置修饰器位置命令是否出现在上下文菜单中。当用户在关系图中右击时调用。 |
![]() |
ProcessOnStatusResetDecoratorSizeCommand | 确定重新路由命令是否出现在上下文菜单中。当用户在关系图中右击时调用。 |
![]() |
ProcessOnStatusSelectAllCommand | 确定全选命令是否出现在菜单上。当该用户在关系图处于活动状态时单击“编辑”菜单时调用。 |
![]() |
ToString | 返回表示当前对象的字符串。 (继承自 Object。) |
页首
备注
可以修改 DSL 如何响应这些菜单命令。 命令来修改包含在快捷菜单中的命令以及对文件和"编辑"菜单的某些命令。
在 DslPackage 项目,您将找到名为 CommandSet.cs 的已生成文件,包含一个名为的类的一部分声明 <TheLanguageName>CommandSet。若要修改标准菜单命令的行为,请添加具有同一类的分部定义的其他文件。
在此类中,您可以重写在基类中定义的方法。
备注
验证在新文件的命名空间相同。在生成的 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 命名空间