DataGridViewRowContextMenuStripNeededEventArgs クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > DataGridViewRowContextMenuStripNeededEventArgs クラスの意味・解説 

DataGridViewRowContextMenuStripNeededEventArgs クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

RowContextMenuStripNeeded イベントデータ提供します

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public Class DataGridViewRowContextMenuStripNeededEventArgs
    Inherits EventArgs
Dim instance As DataGridViewRowContextMenuStripNeededEventArgs
public class DataGridViewRowContextMenuStripNeededEventArgs
 : EventArgs
public ref class DataGridViewRowContextMenuStripNeededEventArgs
 : public EventArgs
public class DataGridViewRowContextMenuStripNeededEventArgs
 extends EventArgs
public class DataGridViewRowContextMenuStripNeededEventArgs
 extends EventArgs
解説解説

RowContextMenuStripNeeded イベントは、DataGridView コントロールの DataSource プロパティ設定されているか、VirtualMode プロパティtrue場合にだけ発生しますRowContextMenuStripNeeded イベント処理すると、行の現在の状態や行含まれる値によって決定されるショートカット メニュー表示する場合に便利です。

RowContextMenuStripNeeded イベント処理すると、ユーザーが行右クリックするたびに、ハンドラ指定したショートカット メニュー表示されます。ただし、クリックされた特定のセルショートカット メニューが、CellContextMenuStripNeeded イベントによってオーバーライドされている場合除きます

RowContextMenuStripNeeded イベントは、プログラム上で、またはユーザーが行右クリックしたときに、DataGridViewRow.ContextMenuStrip プロパティの値が取得されたときにも発生します

RowIndex プロパティ使用すると、行の状態や行含まれる値を特定し、その情報使用して ContextMenuStrip プロパティ変更できます。このプロパティは、行の ContextMenuStrip プロパティの値によって初期化され、イベントの値によってオーバーライドされます

RowContextMenuStripNeeded イベントは、多くデータ処理するときに、複数行の ContextMenuStrip の値を設定することによるパフォーマンスの低下を防ぐために使用します詳細については、「Windows フォーム DataGridView コントロール拡張するための推奨される手順」を参照してください

イベント処理詳細については、「イベント利用」を参照してください

使用例使用例

RowContextMenuStripNeeded イベント処理して従業員役職応じた ContextMenuStrip を表示するコード例次に示します。この例では、2 種類ショートカット メニューがあり、1 つ経営者向け、もう 1 つその他のすべての従業員向けです。

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Drawing
Imports System.Windows.Forms

Class Form1
    Inherits Form

    Private WithEvents dataGridView1 As
 New DataGridView()
    Private WithEvents employeeMenuStrip As
 New ContextMenuStrip()
    Private WithEvents managerMenuStrip As
 New ContextMenuStrip()
    Private WithEvents toolStripMenuItem1 As
 New ToolStripMenuItem()
    Private WithEvents toolStripMenuItem2 As
 New ToolStripMenuItem()
    Private WithEvents toolStripMenuItem3 As
 New ToolStripMenuItem()

    Private contextMenuRowIndex As Integer

    Public Sub New()
        Me.Size = New Size(700, 300)
        Me.Controls.Add(dataGridView1)

        toolStripMenuItem1.Text = "View Employee Sales Report"
        toolStripMenuItem2.Text = "View Team Sales Report"
        toolStripMenuItem3.Text = "View Company Sales Team Ranking
 Report"

        With employeeMenuStrip
            .Items.Add(toolStripMenuItem1)
        End With
        With managerMenuStrip
            .Items.Add(toolStripMenuItem2)
            .Items.Add(toolStripMenuItem3)
        End With

        PopulateDataGridView()
    End Sub

    ' Establish the main entry point for the application.
    <STAThreadAttribute()> _
    Public Shared Sub Main()
        Application.Run(New Form1())
    End Sub

    Private Sub PopulateDataGridView()

        With dataGridView1
            .Dock = DockStyle.Fill
            .AllowUserToAddRows = False
            .MultiSelect = False
            .ReadOnly = True
            .AllowUserToDeleteRows = False
        End With

        Dim query As String
        query = "SELECT e1.*, e2.FirstName + ' ' + e2.LastName
 AS Manager "
        query &= "FROM employees AS e1 LEFT JOIN employees
 AS e2 "
        query &= "ON e1.ReportsTo = e2.EmployeeID"

        ' Connect to the database
        Dim sqlConnection1 As New
 SqlConnection( _
            "Integrated Security=SSPI;Persist Security Info=False;"
 & _
            "Initial Catalog=Northwind;Data Source=localhost")
        Dim sqlDataAdapter1 As New
 SqlDataAdapter(query, _
            sqlConnection1)

        Dim dataTable1 As New
 System.Data.DataTable()
        dataTable1.Locale = System.Globalization.CultureInfo.InvariantCulture
        sqlDataAdapter1.Fill(dataTable1)

        dataGridView1.DataSource = dataTable1
    End Sub

    Private Sub dataGridView1_DataBindingComplete(ByVal
 sender As Object, _
    ByVal e As DataGridViewBindingCompleteEventArgs)
 _
    Handles dataGridView1.DataBindingComplete

        ' Hide some of the columns.
        With dataGridView1
            .Columns("EmployeeID").Visible = False
            .Columns("Address").Visible = False
            .Columns("TitleOfCourtesy").Visible =
 False
            .Columns("BirthDate").Visible = False
            .Columns("HireDate").Visible = False
            .Columns("PostalCode").Visible = False
            .Columns("Photo").Visible = False
            .Columns("Notes").Visible = False
            .Columns("ReportsTo").Visible = False
            .Columns("PhotoPath").Visible = False
        End With

        ' Disable sorting for the DataGridView.
        Dim i As DataGridViewColumn
        For Each i In dataGridView1.Columns
            i.SortMode = DataGridViewColumnSortMode.NotSortable
        Next i

        dataGridView1.AutoResizeColumns()

    End Sub

    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

    Public Sub dataGridView1_CellToolTipTextNeeded(ByVal
 sender As Object, _
        ByVal e As DataGridViewCellToolTipTextNeededEventArgs)
 _
        Handles dataGridView1.CellToolTipTextNeeded

        Dim newLine As String
 = Environment.NewLine
        If e.RowIndex > -1 Then
            Dim dataGridViewRow1 As DataGridViewRow
 = _
            dataGridView1.Rows(e.RowIndex)

            ' Add the employee's ID to the ToolTipText.
            e.ToolTipText = String.Format("EmployeeID
 {0}: {1}", _
                dataGridViewRow1.Cells("EmployeeID").Value.ToString(),
 _
                newLine)

            ' Add the employee's name to the ToolTipText.
            e.ToolTipText += String.Format("{0}
 {1} {2} {3}", _
                dataGridViewRow1.Cells("TitleOfCourtesy").Value.ToString(),
 _
                dataGridViewRow1.Cells("FirstName").Value.ToString(),
 _
                dataGridViewRow1.Cells("LastName").Value.ToString(),
 _
                newLine)

            ' Add the employee's title to the ToolTipText.
            e.ToolTipText += String.Format("{0}{1}{2}",
 _
                dataGridViewRow1.Cells("Title").Value.ToString(),
 _
                newLine, newLine)

            ' Add the employee's contact information to the ToolTipText.
            e.ToolTipText += String.Format("{0}{1}{2},
 ", _
                dataGridViewRow1.Cells("Address").Value.ToString(),
 newLine, _
                dataGridViewRow1.Cells("City").Value.ToString())
            If Not String.IsNullOrEmpty(
 _
                dataGridViewRow1.Cells("Region").Value.ToString())

                e.ToolTipText += String.Format("{0},
 ", _
                   dataGridViewRow1.Cells("Region").Value.ToString())
            End If
            e.ToolTipText += String.Format("{0},
 {1}{2}{3} EXT:{4}{5}{6}", _
                dataGridViewRow1.Cells("Country").Value.ToString(),
 _
                dataGridViewRow1.Cells("PostalCode").Value.ToString(),
 _
                newLine, _
                dataGridViewRow1.Cells("HomePhone").Value.ToString(),
 _
                dataGridViewRow1.Cells("Extension").Value.ToString(),
 _
                newLine, newLine)

            ' Add employee information to the ToolTipText.
            Dim HireDate As DateTime = _
                CType(dataGridViewRow1.Cells("HireDate").Value,
 DateTime)
            e.ToolTipText += _
                String.Format("Employee since:
 {0}/{1}/{2}{3}Manager: {4}", _
                    HireDate.Month.ToString(), HireDate.Day.ToString(), _
                    HireDate.Year.ToString(), newLine, _
                    dataGridViewRow1.Cells("Manager").Value.ToString())
        End If
    End Sub

    Public Sub toolStripMenuItem1_Click(ByVal
 sender As Object, _
        ByVal e As EventArgs) Handles
 toolStripMenuItem1.Click

        Dim dataGridViewRow1 As DataGridViewRow
 = _
            dataGridView1.Rows(contextMenuRowIndex)

        MessageBox.Show(String.Format( _
            "Sales Report for {0} {1}:{2}{3}Reporting Not Implemented",
 _
            dataGridViewRow1.Cells("FirstName").Value.ToString(),
 _
            dataGridViewRow1.Cells("LastName").Value.ToString(),
 _
            Environment.NewLine, Environment.NewLine))
    End Sub

    Public Sub toolStripMenuItem2_Click(ByVal
 sender As Object, _
        ByVal e As EventArgs) Handles
 toolStripMenuItem2.Click

        Dim dataGridViewRow1 As DataGridViewRow
 = _
            dataGridView1.Rows(contextMenuRowIndex)

        MessageBox.Show(String.Format( _
            "Sales Report for {0} {1}:{2}{3}Reporting Not Implemented",
 _
            dataGridViewRow1.Cells("FirstName").Value.ToString(),
 _
            dataGridViewRow1.Cells("LastName").Value.ToString(),
 _
            Environment.NewLine, Environment.NewLine))
    End Sub

    Public Sub toolStripMenuItem3_Click(ByVal
 sender As Object, _
        ByVal e As EventArgs) Handles
 toolStripMenuItem3.Click

        Dim dataGridViewRow1 As DataGridViewRow
 = _
            dataGridView1.Rows(contextMenuRowIndex)

        MessageBox.Show(String.Format( _
          "Company Sales Ranking Report:{0}{1}Reporting not implemented.",
 _
            Environment.NewLine, Environment.NewLine))
    End Sub
End Class
#region Using directives

using System;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;

#endregion

class Form1 : Form
{
    private DataGridView dataGridView1 = new
 DataGridView();
    private ContextMenuStrip employeeMenuStrip = new
 ContextMenuStrip();
    private ContextMenuStrip managerMenuStrip = new
 ContextMenuStrip();
    private ToolStripMenuItem toolStripMenuItem1 = new
 ToolStripMenuItem();
    private ToolStripMenuItem toolStripMenuItem2 = new
 ToolStripMenuItem();
    private ToolStripMenuItem toolStripMenuItem3 = new
 ToolStripMenuItem();

    private int contextMenuRowIndex;

    public Form1()
    {
        // Initialize the form.
        // This code can be replaced with designer generated code.
        this.Size = new Size(700, 300);
        this.Controls.Add(dataGridView1);

        toolStripMenuItem1.Text = "View Employee Sales Report";
        toolStripMenuItem2.Text = "View Team Sales Report";
        toolStripMenuItem3.Text = "View Company Sales Team Ranking Report";
    }

    protected override void OnLoad(EventArgs
 e)
    {
        dataGridView1.DataBindingComplete +=
            new DataGridViewBindingCompleteEventHandler(
            dataGridView1_DataBindingComplete);
        dataGridView1.CellToolTipTextNeeded +=
            new DataGridViewCellToolTipTextNeededEventHandler(
            dataGridView1_CellToolTipTextNeeded);
        dataGridView1.RowContextMenuStripNeeded +=
            new DataGridViewRowContextMenuStripNeededEventHandler(
            dataGridView1_RowContextMenuStripNeeded);
        toolStripMenuItem1.Click +=
            new EventHandler(toolStripMenuItem1_Click);
        toolStripMenuItem2.Click +=
            new EventHandler(toolStripMenuItem2_Click);
        toolStripMenuItem3.Click +=
            new EventHandler(toolStripMenuItem3_Click);

        employeeMenuStrip.Items.Add(toolStripMenuItem1);

        managerMenuStrip.Items.Add(toolStripMenuItem2);
        managerMenuStrip.Items.Add(toolStripMenuItem3);

        PopulateDataGridView();

        base.OnLoad(e);
    }

    // Establish the main entry point for the application.
    [STAThreadAttribute()]
    public static void Main()
    {
        Application.Run(new Form1());
    }

    // Replace this with your own code to populate the DataGridView.
    private void PopulateDataGridView()
    {
        dataGridView1.Dock = DockStyle.Fill;
        dataGridView1.AllowUserToAddRows = false;
        dataGridView1.MultiSelect = false;
        dataGridView1.ReadOnly = true;
        dataGridView1.AllowUserToDeleteRows = false;

        string query;
        query = "SELECT e1.*, e2.FirstName + ' ' + e2.LastName AS Manager "
            + "FROM employees AS e1 LEFT JOIN employees AS e2 "
            + "ON e1.ReportsTo = e2.EmployeeID";

        // Connect to the database
        SqlConnection sqlConnection1 = new SqlConnection(
            "Integrated Security=SSPI;Persist Security Info=False;" +
            "Initial Catalog=Northwind;Data Source=localhost");
        SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(query
,
            sqlConnection1);

        DataTable dataTable1 = new DataTable();
        dataTable1.Locale = System.Globalization.CultureInfo.InvariantCulture;
        sqlDataAdapter1.Fill(dataTable1);

        dataGridView1.DataSource = dataTable1;
    }

    private void dataGridView1_DataBindingComplete(object
 sender,
        DataGridViewBindingCompleteEventArgs e)
    {
        // Hide some of the columns.
        dataGridView1.Columns["EmployeeID"].Visible = false;
        dataGridView1.Columns["Address"].Visible = false;
        dataGridView1.Columns["TitleOfCourtesy"].Visible = false;
        dataGridView1.Columns["BirthDate"].Visible = false;
        dataGridView1.Columns["HireDate"].Visible = false;
        dataGridView1.Columns["PostalCode"].Visible = false;
        dataGridView1.Columns["Photo"].Visible = false;
        dataGridView1.Columns["Notes"].Visible = false;
        dataGridView1.Columns["ReportsTo"].Visible = false;
        dataGridView1.Columns["PhotoPath"].Visible = false;

        // Disable sorting for the DataGridView.
        foreach (DataGridViewColumn i in
            dataGridView1.Columns)
        {
            i.SortMode = DataGridViewColumnSortMode.NotSortable;
        }

        dataGridView1.AutoResizeColumns();
    }

    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;
    }

    void dataGridView1_CellToolTipTextNeeded(object sender,
        DataGridViewCellToolTipTextNeededEventArgs e)
    {
        string newLine = Environment.NewLine;
        if (e.RowIndex > -1)
        {
            DataGridViewRow dataGridViewRow1 = dataGridView1.Rows[e.RowIndex];

            // Add the employee's ID to the ToolTipText.
            e.ToolTipText = String.Format("EmployeeID {0}:{1}",
                dataGridViewRow1.Cells["EmployeeID"].Value, newLine);

            // Add the employee's name to the ToolTipText.
            e.ToolTipText += String.Format("{0} {1} {2}{3}",
                dataGridViewRow1.Cells["TitleOfCourtesy"].Value.ToString()
,
                dataGridViewRow1.Cells["FirstName"].Value.ToString(),
                dataGridViewRow1.Cells["LastName"].Value.ToString(),
                newLine);

            // Add the employee's title to the ToolTipText.
            e.ToolTipText += String.Format("{0}{1}{2}",
                dataGridViewRow1.Cells["Title"].Value.ToString(),
                newLine, newLine);

            // Add the employee's contact information to the ToolTipText.
            e.ToolTipText += String.Format("{0}{1}{2}, ",
                dataGridViewRow1.Cells["Address"].Value.ToString(), newLine
,
                dataGridViewRow1.Cells["City"].Value.ToString());
            if (!String.IsNullOrEmpty(
                dataGridViewRow1.Cells["Region"].Value.ToString()))
            {
                e.ToolTipText += String.Format("{0}, ",
                    dataGridViewRow1.Cells["Region"].Value.ToString());
            }
            e.ToolTipText += String.Format("{0}, {1}{2}{3} EXT:{4}{5}{6}"
,
                dataGridViewRow1.Cells["Country"].Value.ToString(),
                dataGridViewRow1.Cells["PostalCode"].Value.ToString(),
                newLine, dataGridViewRow1.Cells["HomePhone"].Value.ToString()
,
                dataGridViewRow1.Cells["Extension"].Value.ToString(),
                newLine, newLine);

            // Add employee information to the ToolTipText.
            DateTime HireDate =
                (DateTime)dataGridViewRow1.Cells["HireDate"].Value;
            e.ToolTipText +=
                String.Format("Employee since: {0}/{1}/{2}{3}Manager: {4}"
,
                HireDate.Month.ToString(), HireDate.Day.ToString(),
                HireDate.Year.ToString(), newLine,
                dataGridViewRow1.Cells["Manager"].Value.ToString());
        }
    }

    void toolStripMenuItem1_Click(object sender, EventArgs e)
    {
        DataGridViewRow dataGridViewRow1 =
            dataGridView1.Rows[contextMenuRowIndex];

        MessageBox.Show(String.Format(
            "Sales Report for {0} {1}{2}{3}Reporting not
 implemented.",
            dataGridViewRow1.Cells["FirstName"].Value.ToString(),
            dataGridViewRow1.Cells["LastName"].Value.ToString(),
            Environment.NewLine, Environment.NewLine));
    }

    void toolStripMenuItem2_Click(object sender, EventArgs e)
    {
        DataGridViewRow dataGridViewRow1 =
            dataGridView1.Rows[contextMenuRowIndex];
        MessageBox.Show(String.Format(
            "Sales Report for {0} {1}'s Team{2}{3}Reporting
 not implemented.",
            dataGridViewRow1.Cells["FirstName"].Value.ToString(),
            dataGridViewRow1.Cells["LastName"].Value.ToString(),
            Environment.NewLine, Environment.NewLine));
    }

    void toolStripMenuItem3_Click(object sender, EventArgs e)
    {
        DataGridViewRow dataGridViewRow1 =
            dataGridView1.Rows[contextMenuRowIndex];
        MessageBox.Show(String.Format(
            "Company Sales Ranking Report:{0}{1}Reporting not implemented."
,
            Environment.NewLine, Environment.NewLine));
    }
}
継承階層継承階層
System.Object
   System.EventArgs
    System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventArgs
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataGridViewRowContextMenuStripNeededEventArgs メンバ
System.Windows.Forms 名前空間
ContextMenuStrip
ContextMenuStrip クラス
DataGridView クラス
DataGridView.RowContextMenuStripNeeded イベント
DataGridView.DataSource プロパティ
DataGridView.VirtualMode プロパティ
DataGridView.OnRowContextMenuStripNeeded
DataGridViewRowContextMenuStripNeededEventHandler
DataGridViewRow.ContextMenuStrip プロパティ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DataGridViewRowContextMenuStripNeededEventArgs クラス」の関連用語

DataGridViewRowContextMenuStripNeededEventArgs クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataGridViewRowContextMenuStripNeededEventArgs クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS