Поделиться через


ContextMenu Класс

Определение

Представляет контекстное меню.

Этот класс недоступен в .NET Core 3.1 и более поздних версиях. Вместо него следует использовать класс ContextMenuStrip, который заменяет и расширяет элемент управления ContextMenu.

public ref class ContextMenu : System::Windows::Forms::Menu
public class ContextMenu : System.Windows.Forms.Menu
type ContextMenu = class
    inherit Menu
Public Class ContextMenu
Inherits Menu
Наследование

Примеры

В следующем примере кода создается обработчик событий для Popup события ContextMenuобъекта . Код в обработчике событий определяет, какой из двух элементов управления именованный PictureBoxpictureBox1 и именованный TextBoxtextBox1 является элементом управления, отображающим контекстное меню. В зависимости от того, какой элемент управления привел к отображению ContextMenu контекстного меню, элемент управления добавляет соответствующие MenuItem объекты в ContextMenu. В этом примере требуется, чтобы в форме был определен экземпляр ContextMenu класса с именем contextMenu1. В этом примере также требуется добавить TextBox и PictureBox в форму, а свойству ContextMenu этих элементов управления присвоено значение contextMenu1.

private:
   void MyPopupEventHandler( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Define the MenuItem objects to display for the TextBox.
      MenuItem^ menuItem1 = gcnew MenuItem( "&Copy" );
      MenuItem^ menuItem2 = gcnew MenuItem( "&Find and Replace" );
      // Define the MenuItem object to display for the PictureBox.
      MenuItem^ menuItem3 = gcnew MenuItem( "C&hange Picture" );
      
      // Clear all previously added MenuItems.
      contextMenu1->MenuItems->Clear();

      if ( contextMenu1->SourceControl == textBox1 )
      {
         
         // Add MenuItems to display for the TextBox.
         contextMenu1->MenuItems->Add( menuItem1 );
         contextMenu1->MenuItems->Add( menuItem2 );
      }
      else if ( contextMenu1->SourceControl == pictureBox1 )
      {
         // Add the MenuItem to display for the PictureBox.
         contextMenu1->MenuItems->Add( menuItem3 );
      }
   }
private void MyPopupEventHandler(System.Object sender, System.EventArgs e)
 {
    // Define the MenuItem objects to display for the TextBox.
    MenuItem menuItem1 = new MenuItem("&Copy");
    MenuItem menuItem2 = new MenuItem("&Find and Replace");
    // Define the MenuItem object to display for the PictureBox.
    MenuItem menuItem3 = new MenuItem("C&hange Picture");

    // Clear all previously added MenuItems.
    contextMenu1.MenuItems.Clear();
 
    if(contextMenu1.SourceControl == textBox1)
    {
       // Add MenuItems to display for the TextBox.
       contextMenu1.MenuItems.Add(menuItem1);
       contextMenu1.MenuItems.Add(menuItem2);
    }
    else if(contextMenu1.SourceControl == pictureBox1)
    {
       // Add the MenuItem to display for the PictureBox.
       contextMenu1.MenuItems.Add(menuItem3);
    }
 }
Private Sub MyPopupEventHandler(sender As System.Object, e As System.EventArgs)
    ' Define the MenuItem objects to display for the TextBox.
    Dim menuItem1 As New MenuItem("&Copy")
    Dim menuItem2 As New MenuItem("&Find and Replace")
    ' Define the MenuItem object to display for the PictureBox.
    Dim menuItem3 As New MenuItem("C&hange Picture")
    
    ' Clear all previously added MenuItems.
    contextMenu1.MenuItems.Clear()
    
    If contextMenu1.SourceControl Is textBox1 Then
        ' Add MenuItems to display for the TextBox.
        contextMenu1.MenuItems.Add(menuItem1)
        contextMenu1.MenuItems.Add(menuItem2)
    ElseIf contextMenu1.SourceControl Is pictureBox1 Then
        ' Add the MenuItem to display for the PictureBox.
        contextMenu1.MenuItems.Add(menuItem3)
    End If
End Sub

Комментарии

Этот класс недоступен в .NET Core 3.1 и более поздних версиях. Взамен рекомендуется использовать ContextMenuStrip.

Класс ContextMenu представляет контекстные меню, которые могут отображаться при нажатии правой кнопки мыши над элементом управления или областью формы. Контекстные меню обычно используются для объединения различных пунктов меню из MainMenu формы, которые полезны для пользователя в контексте приложения. Например, можно использовать контекстное меню, назначенное элементу TextBox управления, чтобы предоставить пункты меню для изменения шрифта текста, поиска текста в элементе управления или функции буфера обмена для копирования и вставки текста. Вы также можете отображать новые MenuItem объекты в контекстном меню, которые не находятся в , чтобы предоставить команды для конкретной MainMenu ситуации MainMenu , которые не подходят для отображения.

Как правило, контекстное меню отображается, когда пользователь щелкает правую кнопку мыши над элементом управления или самой формой. Видимые элементы управления и Form имеют ContextMenu свойство , которое привязывает ContextMenu класс к элементу управления, отображающего контекстное меню. Несколько элементов управления могут использовать ContextMenu. Вы можете использовать SourceControl свойство , чтобы определить, какой элемент управления последний раз отображался в контекстном меню, чтобы выполнять задачи, относящиеся к элементу управления, или изменить контекстное меню, отображаемое для элемента управления.

Вы можете узнать, когда отображается контекстное меню, чтобы задать проверка метки, отключить элементы и выполнить другие задачи меню перед отображением меню для пользователя. Вы можете обработать Popup событие, чтобы определить, когда отображается контекстное меню.

Примечание

Чтобы повторно использовать MenuItem объекты, отображаемые в MainMenu для использования в ContextMenu, необходимо создать копию меню с помощью CloneMenu метода MenuItem класса . Вы также можете объединить элементы меню и их подменю в один MenuItem объект с помощью MergeMenu метода MenuItem класса .

Конструкторы

ContextMenu()

Инициализирует новый экземпляр класса ContextMenu без указания команд меню.

ContextMenu(MenuItem[])

Инициализирует новый экземпляр класса ContextMenu с указанным набором объектов MenuItem.

Поля

FindHandle

Указывает, что метод FindMenuItem(Int32, IntPtr) должен выполнять поиск дескриптора.

(Унаследовано от Menu)
FindShortcut

Указывает, что метод FindMenuItem(Int32, IntPtr) должен выполнять поиск ярлыка.

(Унаследовано от Menu)

Свойства

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.

(Унаследовано от Component)
Container

Возвращает объект IContainer, который содержит коллекцию Component.

(Унаследовано от Component)
DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

(Унаследовано от Component)
Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

(Унаследовано от Component)
Handle

Получает значение, представляющее дескриптор окна для меню.

(Унаследовано от Menu)
IsParent

Получает значение, показывающее, содержит ли это меню какие-нибудь элементы меню. Это свойство доступно только для чтения.

(Унаследовано от Menu)
MdiListItem

Получает значение, указывающее объект MenuItem, используемый для отображения списка дочерних форм многодокументного интерфейса (MDI).

(Унаследовано от Menu)
MenuItems

Получает значение, показывающее коллекцию объектов MenuItem, связанных с данным меню.

(Унаследовано от Menu)
Name

Возвращает или задает имя таблицы для объекта Menu.

(Унаследовано от Menu)
RightToLeft

Возвращает или задает значение, указывающее, размещается ли текст, отображаемый элементом управления, справа налево.

Site

Получает или задает ISite объекта Component.

(Унаследовано от Component)
SourceControl

Возвращает элемент управления, отображающий контекстное меню.

Tag

Получает или задает определяемые пользователем данные, связанные с элементом управления.

(Унаследовано от Menu)

Методы

CloneMenu(Menu)

Копирует объект Menu, передаваемый в качестве параметра в текущий объект Menu.

(Унаследовано от Menu)
CreateMenuHandle()

Создает новый дескриптор для объекта Menu.

(Унаследовано от Menu)
CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Уничтожает ресурсы (кроме памяти), используемые классом Menu.

(Унаследовано от Menu)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
FindMenuItem(Int32, IntPtr)

Получает объект MenuItem, содержащий указываемое значение.

(Унаследовано от Menu)
FindMergePosition(Int32)

Возвращает позицию меню, в которую должен быть вставлен элемент меню.

(Унаследовано от Menu)
GetContextMenu()

Получает объект ContextMenu, содержащий это меню.

(Унаследовано от Menu)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetMainMenu()

Получает объект MainMenu, содержащий это меню.

(Унаследовано от Menu)
GetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

(Унаследовано от Component)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
MergeMenu(Menu)

Объединяет объекты MenuItem одного меню с текущим меню.

(Унаследовано от Menu)
OnCollapse(EventArgs)

Вызывает событие Collapse.

OnPopup(EventArgs)

Вызывает событие Popup.

ProcessCmdKey(Message, Keys)

Обрабатывает клавишу для команд.

(Унаследовано от Menu)
ProcessCmdKey(Message, Keys, Control)

Обрабатывает клавишу для команд.

Show(Control, Point)

Отображает контекстное меню в указанном месте.

Show(Control, Point, LeftRightAlignment)

Отображает контекстное меню в указанном месте с заданным видом выравнивания.

ToString()

Возвращает объект String, который представляет элемент управления Menu.

(Унаследовано от Menu)

События

Collapse

Происходит при свертывании контекстного меню.

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

(Унаследовано от Component)
Popup

Происходит перед отображением контекстного меню.

Применяется к

См. также раздел