Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
454 views
in Technique[技术] by (71.8m points)

c# - Add context menu in a datagrid view in a winform application

How to show a Context Menu when you right click a Menu Item in a DataGridView ? I would like to add delete in the menu so that the entire row can be deleted . Thanks in Advance

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You'll need to create a context menu with a "delete row" option in the designer. Then assign the DGV (Data Grid View)'s ContextMenuStrip property to this context menu.

Then double click on the delete row item, and add this code:

DGV.Rows.Remove(DGV.CurrentRow);

You'll also need to add a MouseUp event for the DGV that allows the current cell to change when you right click it:

private void DGV_MouseUp(object sender, MouseEventArgs e)
{
    // This gets information about the cell you clicked.
    System.Windows.Forms.DataGridView.HitTestInfo ClickedInfo = DGV.HitTest(e.X, e.Y);

    // This is so that the header row cannot be deleted
    if (ClickedInfo.ColumnIndex >= 0 && ClickedInfo.RowIndex >= 0)

    // This sets the current row
    DataViewMain.CurrentCell = DGV.Rows[ClickedInfo.RowIndex].Cells[ClickedInfo.ColumnIndex];
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...