DataGridViewRowContextMenuStripNeededEventHandler DataGridViewRowContextMenuStripNeededEventHandler DataGridViewRowContextMenuStripNeededEventHandler DataGridViewRowContextMenuStripNeededEventHandler Delegate

정의

RowContextMenuStripNeededDataGridView 이벤트를 처리할 메서드를 나타냅니다.Represents the method that will handle the RowContextMenuStripNeeded event of a DataGridView.

public delegate void DataGridViewRowContextMenuStripNeededEventHandler(System::Object ^ sender, DataGridViewRowContextMenuStripNeededEventArgs ^ e);
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(object sender, DataGridViewRowContextMenuStripNeededEventArgs e);
type DataGridViewRowContextMenuStripNeededEventHandler = delegate of obj * DataGridViewRowContextMenuStripNeededEventArgs -> unit
Public Delegate Sub DataGridViewRowContextMenuStripNeededEventHandler(sender As Object, e As DataGridViewRowContextMenuStripNeededEventArgs)

매개 변수

sender
Object Object Object Object

이벤트 소스입니다.The source of the event.

상속
DataGridViewRowContextMenuStripNeededEventHandlerDataGridViewRowContextMenuStripNeededEventHandlerDataGridViewRowContextMenuStripNeededEventHandlerDataGridViewRowContextMenuStripNeededEventHandler

예제

다음 코드 예제에서는 RowContextMenuStripNeeded 이벤트가 처리 되어 제공을 ContextMenuStrip 는 직원의 직책이 기반 합니다.In the following code example, the RowContextMenuStripNeeded event is handled to provide a ContextMenuStrip based on the title of the employee. 이 예제에서는 두 가지 상황에 맞는 메뉴, 관리자 및 다른 모든 직원에 대 한 하나.In this example, two there are two context menus, one for managers and one for all other employees.

void dataGridView1_RowContextMenuStripNeeded(object sender,
    DataGridViewRowContextMenuStripNeededEventArgs e)
{
    DataGridViewRow dataGridViewRow1 = dataGridView1.Rows[e.RowIndex];

    toolStripMenuItem1.Enabled = true;

    // Show the appropriate ContextMenuStrip based on the employees title.
    if ((dataGridViewRow1.Cells["Title"].Value.ToString() ==
        "Sales Manager") ||
        (dataGridViewRow1.Cells["Title"].Value.ToString() ==
        "Vice President, Sales"))
    {
        e.ContextMenuStrip = managerMenuStrip;
    }
    else
    {
        e.ContextMenuStrip = employeeMenuStrip;
    }

    contextMenuRowIndex = e.RowIndex;
}
Public Sub dataGridView1_RowContextMenuStripNeeded( _
    ByVal sender As Object, _
    ByVal e As DataGridViewRowContextMenuStripNeededEventArgs) _
    Handles dataGridView1.RowContextMenuStripNeeded

    Dim dataGridViewRow1 As DataGridViewRow = _
    dataGridView1.Rows(e.RowIndex)

    toolStripMenuItem1.Enabled = True

    ' Show the appropriate ContextMenuStrip based on the employees title.
    If dataGridViewRow1.Cells("Title").Value.ToString() = _
        "Sales Manager" OrElse _
        dataGridViewRow1.Cells("Title").Value.ToString() = _
        "Vice President, Sales" Then

        e.ContextMenuStrip = managerMenuStrip
    Else
        e.ContextMenuStrip = employeeMenuStrip
    End If

    contextMenuRowIndex = e.RowIndex
End Sub

설명

RowContextMenuStripNeeded 이벤트에만 발생 경우를 DataGridView 컨트롤 DataSource 속성을 설정 또는 해당 VirtualMode 속성은 true합니다.The RowContextMenuStripNeeded event occurs only when the DataGridView control DataSource property is set or its VirtualMode property is true. 처리는 RowContextMenuStripNeeded 이벤트는 행의 현재 상태 또는 포함 된 값에 의해 결정 된 바로 가기 메뉴를 표시 하려는 경우에 유용 합니다.Handling the RowContextMenuStripNeeded event is useful when you want to display a shortcut menu determined by a row's current state or the values it contains.

처리 하는 경우는 RowContextMenuStripNeeded 이벤트 처리기에서 지정 하는 바로 가기 메뉴가 표시 됩니다 하지 않는 한 사용자는 행을 클릭할 때마다는 CellContextMenuStripNeeded 클릭 된 특정 셀에 대 한 바로 가기 메뉴를 재정의 합니다.When you handle the RowContextMenuStripNeeded event, the shortcut menu that you specify in the handler is shown whenever the user right-clicks a row unless the CellContextMenuStripNeeded overrides the shortcut menu for the specific cell that was clicked.

RowContextMenuStripNeeded 이벤트는 또한 될 때마다 발생의 값을 DataGridViewRow.ContextMenuStrip 속성은 검색 하거나 프로그래밍 방식으로 또는 사용자 행을 마우스 오른쪽 단추로 클릭할 때입니다.The RowContextMenuStripNeeded event also occurs whenever the value of the DataGridViewRow.ContextMenuStrip property is retrieved, either programmatically or when the user right-clicks a row.

사용할 수는 DataGridViewRowContextMenuStripNeededEventArgs.RowIndex 속성을 행 또는 포함 된 값의 상태를 확인 하 고이 정보를 사용 하 여 변경 하거나 수정 하는 DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip 속성입니다.You can use the DataGridViewRowContextMenuStripNeededEventArgs.RowIndex property to determine the state of a row or the values it contains, and use this information to change or modify the DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip property. 이 속성은 행의 값을 사용 하 여 초기화 ContextMenuStrip 이벤트 값을 재정의 하는 속성입니다.This property is initialized with the value of the row ContextMenuStrip property, which the event value overrides.

처리를 RowContextMenuStripNeeded 대량의 행을 설정 하는 성능 저하를 방지 하려면 데이터를 작업할 때 이벤트 ContextMenuStrip 여러 행에 대 한 값입니다.Handle the RowContextMenuStripNeeded event when working with large amounts of data to avoid the performance penalties of setting the row ContextMenuStrip value for multiple rows. 자세한 내용은 Windows Forms DataGridView 컨트롤의 크기 조정에 대 한 모범 사례합니다.For more information, see Best Practices for Scaling the Windows Forms DataGridView Control.

이벤트를 처리 하는 방법에 대 한 자세한 내용은 참조 하세요. 이벤트 처리 및 발생합니다.For more information about how to handle events, see Handling and Raising Events.

DataGridViewRowContextMenuStripNeededEventHandler 대리자를 만들 때, 이벤트를 처리할 메서드를 식별합니다.When you create a DataGridViewRowContextMenuStripNeededEventHandler delegate, you identify the method that will handle the event. 이벤트를 이벤트 처리기와 연결하려면 대리자의 인스턴스를 해당 이벤트에 추가합니다.To associate the event with your event handler, add an instance of the delegate to the event. 대리자를 제거하지 않는 경우 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다.The event handler is called whenever the event occurs, unless you remove the delegate. 이벤트 처리기 대리자에 대 한 자세한 내용은 참조 하세요. 이벤트 처리 및 발생합니다.For more information about event-handler delegates, see Handling and Raising Events.

확장 메서드

GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate)

지정된 대리자가 나타내는 메서드를 나타내는 개체를 가져옵니다.Gets an object that represents the method represented by the specified delegate.

적용 대상

추가 정보