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