다음을 통해 공유


방법: ContextMenuStrip Opening 이벤트 처리

Opening 이벤트를 처리하여 ContextMenuStrip 컨트롤의 동작을 사용자 지정할 수 있습니다.

예제

다음 코드 예제에서는 처리 하는 방법에 설명 합니다 Opening 이벤트입니다. 이벤트 처리기는 ContextMenuStrip 컨트롤에 항목을 동적으로 추가합니다. 전체 코드 예는 방법: 동적으로 ToolStrip 항목 추가를 참조하세요.

// This event handler is invoked when the ContextMenuStrip
// control's Opening event is raised. It demonstrates
// dynamic item addition and dynamic SourceControl
// determination with reuse.
void cms_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{
    // Acquire references to the owning control and item.
    Control c = fruitContextMenuStrip.SourceControl as Control;
    ToolStripDropDownItem tsi = fruitContextMenuStrip.OwnerItem as ToolStripDropDownItem;

    // Clear the ContextMenuStrip control's Items collection.
    fruitContextMenuStrip.Items.Clear();

    // Check the source control first.
    if (c != null)
    {
        // Add custom item (Form)
        fruitContextMenuStrip.Items.Add("Source: " + c.GetType().ToString());
    }
    else if (tsi != null)
    {
        // Add custom item (ToolStripDropDownButton or ToolStripMenuItem)
        fruitContextMenuStrip.Items.Add("Source: " + tsi.GetType().ToString());
    }

    // Populate the ContextMenuStrip control with its default items.
    fruitContextMenuStrip.Items.Add("-");
    fruitContextMenuStrip.Items.Add("Apples");
    fruitContextMenuStrip.Items.Add("Oranges");
    fruitContextMenuStrip.Items.Add("Pears");

    // Set Cancel to false.
    // It is optimized to true based on empty entry.
    e.Cancel = false;
}
' This event handler is invoked when the ContextMenuStrip
' control's Opening event is raised. It demonstrates
' dynamic item addition and dynamic SourceControl 
' determination with reuse.
 Sub cms_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)

     ' Acquire references to the owning control and item.
     Dim c As Control = fruitContextMenuStrip.SourceControl
     Dim tsi As ToolStripDropDownItem = fruitContextMenuStrip.OwnerItem 

     ' Clear the ContextMenuStrip control's 
     ' Items collection.
     fruitContextMenuStrip.Items.Clear()

     ' Check the source control first.
     If (c IsNot Nothing) Then
         ' Add custom item (Form)
         fruitContextMenuStrip.Items.Add(("Source: " + c.GetType().ToString()))
     ElseIf (tsi IsNot Nothing) Then
         ' Add custom item (ToolStripDropDownButton or ToolStripMenuItem)
         fruitContextMenuStrip.Items.Add(("Source: " + tsi.GetType().ToString()))
     End If

     ' Populate the ContextMenuStrip control with its default items.
     fruitContextMenuStrip.Items.Add("-")
     fruitContextMenuStrip.Items.Add("Apples")
     fruitContextMenuStrip.Items.Add("Oranges")
     fruitContextMenuStrip.Items.Add("Pears")

     ' Set Cancel to false. 
     ' It is optimized to true based on empty entry.
     e.Cancel = False
 End Sub

메뉴가 열리지 않도록 CancelEventArgs.Cancel 속성을 true로 설정하세요.

참고 항목