Ich versuche, das angeklickte Element in einem Kontextmenü zu erhalten. Ich lese den folgenden Code von dem, was ich im Internet finde, aber ich bin ein wenig verwirrt mit ToolStripMenu
, ContextMenu
und MenuItem
. Von dem, was ich finden kann, scheint dies der richtige Weg zu sein, den ausgewählten Menüpunkt zu bekommen, aber es scheint nicht für mich zu funktionieren.Kann kein ToolStripItem zu MenuItem
Ich erstelle ein Kontextmenü, wenn ich mit der rechten Maustaste auf eine Zeile DataGrid
klicke.
In dem angeklickten Ereignis binde ich den Absender auf eine MenuItem
. Im Debugger sieht der Absender mit den beiden Items gut aus, aber var mi = sender as MenuItem
gibt nur null zurück. Was mache ich bitte falsch?
ContextMenuStrip my_menu = new ContextMenuStrip();
int position_xy_mouse_row = dataGridView1.HitTest(e.X, e.Y).RowIndex;
if (position_xy_mouse_row >= 0
{
DataGridViewRow selectedRow = dataGridView1.Rows[position_xy_mouse_row];
dataGridView1.CurrentCell = dataGridView1.Rows[position_xy_mouse_row].Cells[0];
my_menu.Items.Add(new ToolStripMenuItem
{
Name = "Delete",
Text = "Delete",
Tag = "Delete"
});
my_menu.Items.Add(new ToolStripMenuItem
{
Name = "Update",
Text = "Update",
Tag = "Update"
});
my_menu.Show(dataGridView1, new Point(e.X, e.Y));
my_menu.ItemClicked += new ToolStripItemClickedEventHandler(my_menu_ItemClicked);
}
private void my_menu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
var mi = sender as MenuItem;
string menuText = mi.Text;
}
Danke so sehr Mark und Sehnsucht! Es ist jetzt viel klarer. – Gerry