最近在做数据统计的时候需要根据某一列进行统计,但是专门放出来实在太难受,最后决定放在右键菜单里面。
根据鼠标所在的列进行这列的统计,比如说学生信息,鼠标在性别上点,那么右键菜单里最后一项就是根据性别统计,在年龄上点就是根据年龄统计。
起初给DataGridView绑定了ContextMenuStrip,在Opening事件中写,但是都很难实现,最终还是直接在DataGridView的鼠标点击事件CellMouseClick中判断完成。
private void customersDataGridView_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { this.customersDataGridView[e.ColumnIndex, e.RowIndex].Selected = true; contextMenuStrip1.Items[7].Text = this.customersDataGridView.Columns[e.ColumnIndex].HeaderText; contextMenuStrip1.Show(Control.MousePosition); } } }