DataGridViewRowContextMenuStripNeededEventHandler 代理人
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
RowContextMenuStripNeeded の DataGridView イベントを処理するメソッドを表します。
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
イベントのソース。
イベント データを格納している DataGridViewRowContextMenuStripNeededEventArgs。
例
次のコード例では、 RowContextMenuStripNeeded イベントは、従業員のタイトルに基づいて を ContextMenuStrip 提供するために処理されます。 この例では、2 つのコンテキスト メニューがあります。1 つはマネージャー用、もう 1 つは他のすべての従業員用です。
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 変更または変更できます。 このプロパティは、イベント値がオーバーライドする row ContextMenuStrip プロパティの値で初期化されます。
大量のデータを RowContextMenuStripNeeded 操作するときにイベントを処理して、複数の行の行 ContextMenuStrip 値を設定するパフォーマンスの低下を回避します。 詳細については、「 Windows フォーム DataGridView コントロールを拡張するための推奨される手順」を参照してください。
イベントを処理する方法の詳細については、次を参照してください。処理とイベントの発生します。
DataGridViewRowContextMenuStripNeededEventHandler デリゲートを作成する場合は、イベントを処理するメソッドを指定します。 イベント ハンドラーにイベントを関連付けるには、イベントにデリゲートのインスタンスを追加します。 イベント ハンドラーは、デリゲートを削除しない限り、イベントが発生するたびに呼び出されます。 イベント ハンドラー デリゲートの詳細については、「イベントの 処理と発生」を参照してください。
拡張メソッド
GetMethodInfo(Delegate) |
指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。 |
適用対象
こちらもご覧ください
.NET