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. この例では、2つのコンテキストメニューがあります。1つはマネージャー用で、もう1つは他のすべての従業員用です。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

注釈

VirtualMode DataGridView trueイベントは、コントロールDataSourceプロパティが設定されているか、そのプロパティがである場合にのみ発生します。 RowContextMenuStripNeededThe 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.

また、プログラムによって、またはDataGridViewRow.ContextMenuStripユーザーが行を右クリックしたときに、プロパティの値が取得されるたびにイベントが発生します。RowContextMenuStripNeededThe 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.

大量のデータを処理するときにContextMenuStrip イベントを処理して、複数行の行の値を設定した場合のパフォーマンスの低下を回避します。RowContextMenuStripNeededHandle 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 フォーム 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.

適用対象

こちらもご覧ください