DataGridViewRowContextMenuStripNeededEventHandler 대리자
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
의 이벤트를 처리할 메서드를 RowContextMenuStripNeededDataGridView나타냅니다.
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(System::Object ^ sender, DataGridViewRowContextMenuStripNeededEventArgs ^ e);
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(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
이벤트의 출처입니다.
이벤트 데이터를 포함하는 A DataGridViewRowContextMenuStripNeededEventArgs 입니다.
예제
다음 코드 예제 RowContextMenuStripNeeded 에서 이벤트는 직원의 제목을 기반으로 제공하도록 ContextMenuStrip 처리됩니다. 이 예제에서는 두 개의 상황에 맞는 메뉴가 있습니다. 하나는 관리자용이고 다른 하나는 다른 모든 직원용입니다.
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 이벤트는 컨트롤 DataSource 속성이 DataGridView 설정되거나 해당 VirtualMode 속성true이 있는 경우에만 발생합니다. 이벤트 처리는 행의 RowContextMenuStripNeeded 현재 상태 또는 행에 포함된 값으로 결정되는 바로 가기 메뉴를 표시하려는 경우에 유용합니다.
이벤트를 처리 RowContextMenuStripNeeded 할 때 클릭한 특정 셀의 바로 가기 메뉴를 재정의하지 않는 한 CellContextMenuStripNeeded 사용자가 행을 마우스 오른쪽 단추로 클릭할 때마다 처리기에서 지정한 바로 가기 메뉴가 표시됩니다.
이 RowContextMenuStripNeeded 이벤트는 프로그래밍 방식으로 또는 사용자가 행을 DataGridViewRow.ContextMenuStrip 마우스 오른쪽 단추로 클릭할 때 속성 값을 검색할 때마다 발생합니다.
속성을 사용하여 DataGridViewRowContextMenuStripNeededEventArgs.RowIndex 행의 상태 또는 행에 포함된 값을 확인하고 이 정보를 사용하여 속성을 변경하거나 수정 DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip 할 수 있습니다. 이 속성은 이벤트 값이 재정의하는 행 ContextMenuStrip 속성의 값으로 초기화됩니다.
여러 행에 RowContextMenuStripNeeded 대한 행 ContextMenuStrip 값을 설정하는 성능 저하를 방지하기 위해 대량의 데이터로 작업할 때 이벤트를 처리합니다. 자세한 내용은 Windows Forms DataGridView 컨트롤 크기 조정에 대한 모범 사례를 참조하세요.
이벤트를 처리하는 방법에 대한 자세한 내용은 이벤트 처리 및 발생을 참조하세요.
대리자를 DataGridViewRowContextMenuStripNeededEventHandler 만들 때 이벤트를 처리할 메서드를 식별합니다. 이벤트를 이벤트 처리기와 연결하려면 대리자의 인스턴스를 이벤트에 추가합니다. 대리자를 제거하지 않는 한 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다. 이벤트 처리기 대리에 대한 자세한 내용은 이벤트 처리 및 발생을 참조하세요.
확장명 메서드
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
지정된 대리자가 나타내는 메서드를 나타내는 개체를 가져옵니다. |