3.6.1. Определение команд

Источник здесь. [перевод не проверен];[перевёл Андрей Бушман]

    Для определения команды следует использовать атрибут CommandMethod. Он ожидает от вас строковое значение, которое будет использоваться в качестве глобального имени команды, которая будет вами определена. Помимо глобального имени команды, атрибут CommandMethod может принимать следующие значения:
  • Command Flags - Флаги команды определяют её поведение
  • Group Name - Имя группы команды
  • Local Name - Локальное имя команды, обычно специфично для используемого языка
  • Help Topic Name - Наименование раздела справки, которая должна отображаться при нажатии клавиши F1
  • Context Menu Type Flags - Флаги типа контекстного меню определяют контекстное меню, которое можно вызвать в процессе работы команды
  • Help File Name - Наименование файла справки, содержащей тему, которая должна быть отображена при нажатии (в процессе выполнения команды) клавиши F1 
    Следующая таблица представляет список доступных флагов1, которые могут быть использованы для определения поведения команды:

Синтаксис определения команды

    Следующий код демонстрирует создание атрибута CommandMethod, который определяет команду под именем CheckForPickfirstSelection. Атрибут так же использует флаг UsePickSet команды, указывающий, что объектам разрешено быть выделенными прежде, чем команда будет запущена.

Код VB.NET

   1:  <CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet)> _
   2:  Public Sub CheckForPickfirstSelection()
   3:   . . .
   4:  End Sub

Код C#

   1:  [CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet)]
   2:   
   3:  public static void CheckForPickfirstSelection()
   4:  {
   5:   . . .
   6:  }
    Вы можете указать к использованию более одного флага, посредством использования оперетора "OR"2 для VB.NET и оператора "|"3 в C#.

Код VB.NET

   1:  <CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet OR _
   2:                                               CommandFlags.NoBlockEditor)> _
   3:  Public Sub CheckForPickfirstSelection()
   4:   . . .
   5:  End Sub

Код C#

   1:  [CommandMethod("CheckForPickfirstSelection", CommandFlags.UsePickSet |
   2:                                               CommandFlags.NoBlockEditor)]
   3:  public static void CheckForPickfirstSelection()
   4:  {
   5:   . . .
   6:  }

Примечания переводчика:
1из перечисления CommandFlags
2 - в оригинале был указан "+", но это не верно, т.к. для бинарных операций должен применяться "OR". В соответствии с этим вношу исправления и в код.
3 - в оригинале был указан "&", но это не верно, т.к. для бинарных операций должен применяться "|". В соответствии с этим вношу исправления и в код. 

Comments