Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 29th, 2012  |  syntax: None  |  size: 2.66 KB  |  hits: 96  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. C# datagridview right click select row and show menu to call a form for edit the row selected
  2. public void Rightclick()
  3.    {
  4.        ContextMenu Rmnu = new ContextMenu();
  5.        MenuItem mnuCCS = new MenuItem("Change Class Size");
  6.        MenuItem mnuDeactv = new MenuItem("Deactivate");
  7.  
  8.        mnuCCS.Click += new EventHandler(radGridView_Class_View_Click);
  9.        mnuDeactv.Click += new EventHandler(radGridView_Class_View_Click);
  10.  
  11.        Rmnu.MenuItems.AddRange(new MenuItem[] { mnuCCS, mnuDeactv });
  12.        radGridView_Class_View.ContextMenu = Rmnu;
  13.  
  14.  
  15.  
  16.    }
  17.    private void radGridView_Class_View_Click(object sender, EventArgs e)
  18.    {
  19.        Rightclick();
  20.    }
  21.        
  22. using System;
  23. using System.Collections.Generic;
  24. using System.ComponentModel;
  25. using System.Data;
  26. using System.Drawing;
  27. using System.Linq;
  28. using System.Text;
  29. using System.Windows.Forms;
  30.  
  31. namespace test1
  32. {
  33. public partial class Form1 : Form
  34. {
  35.     public Form1()
  36.     {
  37.         InitializeComponent();
  38.  
  39.         // Test-Data
  40.         dataGridView1.DataSource = GetTestData();
  41.  
  42.         // Add menu
  43.         AddContextMenu(dataGridView1);
  44.  
  45.         // remember mouse location
  46.         AddMouseEnterEvent();
  47.     }
  48.  
  49.     private DataTable GetTestData()
  50.     {
  51.         DataTable tab = new DataTable();
  52.         DataColumn c1 = new DataColumn("col1");
  53.         DataColumn c2 = new DataColumn("col2");
  54.         tab.Columns.AddRange(new DataColumn[] { c1, c2 });
  55.         DataRow r1 = tab.NewRow(); r1[c1] = "cell 1"; r1[c2] = "cell 2";
  56.         DataRow r2 = tab.NewRow(); r2[c1] = "cell 3"; r2[c2] = "cell 4";
  57.         tab.Rows.Add(r1);
  58.         tab.Rows.Add(r2);
  59.  
  60.         return tab;
  61.     }
  62.  
  63.     private void AddContextMenu(DataGridView dgv)
  64.     {
  65.         var strip = new ContextMenuStrip();
  66.         var menu1 = strip.Items.Add("Change Class Size");
  67.         var menu2 = strip.Items.Add("Deactivate");
  68.  
  69.         menu1.Click += new EventHandler(menu1_Click);
  70.         menu2.Click += new EventHandler(menu2_Click);
  71.         foreach (DataGridViewColumn column in dgv.Columns)
  72.         {
  73.             column.ContextMenuStrip = strip;
  74.         }
  75.     }
  76.  
  77.     DataGridViewCellEventArgs mouseLocation;
  78.     void AddMouseEnterEvent()
  79.     {
  80.         dataGridView1.CellMouseEnter += (s,e) => { mouseLocation = e; };
  81.     }
  82.  
  83.     void menu2_Click(object sender, EventArgs e)
  84.     {
  85.         var cell = dataGridView1.Rows[mouseLocation.RowIndex].Cells[mouseLocation.ColumnIndex];
  86.         // do something stupid
  87.         cell.Style.BackColor = Color.Red;
  88.     }
  89.  
  90.     void menu1_Click(object sender, EventArgs e)
  91.     {
  92.         var cell = dataGridView1.Rows[mouseLocation.RowIndex].Cells[mouseLocation.ColumnIndex];
  93.         // do something even more stupid
  94.         cell.Style.BackColor = Color.Blue;
  95.     }
  96. }
  97. }