dedect right click in DataGridView column header

  • Thread starter Thread starter Andrus
  • Start date Start date
A

Andrus

I need to capture mouse right click in DataGridView column header. I tried

class MyDataGridView: DataGridView {

protected override void
OnColumnHeaderMouseClick(DataGridViewCellMouseEventArgs e) {
.....

OnColumnHeaderMouseClick occurs when header is right or left-clicked by
mouse. DataGridViewCellMouseEventArgs does not provide
information which mouse button is pressed.

How to find when mouse is right-clicked in column header ?

Andrus.
 
Look at e.Button.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.ComponentModel;


class Foo
{
public string Name { get; set; }
public DateTime DateOfBirth { get; set; }
}
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
var list = new BindingList<Foo> {
new Foo { Name = "Fred", DateOfBirth = DateTime.Now }
};
using (DataGridView grid = new DataGridView
{
Dock = DockStyle.Fill,
DataSource = list
})
using (Form f = new Form {
Controls = {grid}
}) {
grid.ColumnHeaderMouseClick += (sender, args) =>
{
f.Text = string.Format("Column {1}, Pressed: {0}",
args.Button, grid.Columns[args.ColumnIndex].DataPropertyName);
};
Application.Run(f);
}
}
}
 
Back
Top