定义命令时,使用该属性。该属性需要一个字符串值用作正在定义的命令的全局名称。除了全局命令名称外,该属性还可以接受以下值:CommandMethodCommandMethodCommandMethod
下表列出了可用于定义命令行为的可用标志。
实例和静态命令方法
命令方法可以声明为实例方法或静态方法。静态命令方法是在 C# 中使用 static 关键字声明的,或者在 VB .NET 中使用关键字声明的。实例命令方法是未使用 static 或关键字声明的公共类成员。SharedShared 对于实例命令方法,该方法的封闭类型将针对每个打开的文档单独实例化。这意味着每个文档都会获得命令实例数据的私有副本。因此,当用户切换文档时,不存在覆盖特定于文档的数据的危险。如果实例方法需要全局共享数据,则可以通过声明静态变量或共享成员变量来实现。 对于静态命令方法,托管包装器运行时模块不需要实例化封闭类型。无论文档上下文如何,都使用方法数据的单个副本。静态命令通常不使用每个文档的数据,并且不需要特别考虑 MDI 模式。 可以使用命令标志定义实例和静态方法,以适应特殊要求。例如,可以使用设置标志的属性声明实例方法。这意味着该命令在应用程序执行上下文中运行,但也维护每个文档的数据。此类命令的 AutoCAD 示例是 PROPERTIES 命令。CommandFlags.Session 同样,可以在没有标志的情况下声明静态方法。此组合对于在文档上下文中运行但不需要维护每个文档数据的命令非常有用。CommandFlags.Session 定义命令的语法下面演示如何创建定义名为 CheckForPickfirstSselection 的命令的属性。该属性还使用命令标志来指示允许命令使用在命令启动之前选择的对象。CommandMethodUsePickSet VB.NET<CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet)> _ Public Sub CheckForPickfirstSelection() . . . End Sub C#[CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet)] public static void CheckForPickfirstSelection() { . . . } 您可以通过在 VB.NET 中使用 + 运算符和 |C# 中的运算符。 VB.NET<CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet + _ CommandFlags.NoBlockEditor)> _ Public Sub CheckForPickfirstSelection() . . . End Sub C#[CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet | CommandFlags.NoBlockEditor)] public static void CheckForPickfirstSelection() { . . . } |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-16 19:53
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.