/ / Perché il clic destro del mouse di ContextMenu sugli oggetti di ListView non funziona? - c #, .net, winforms, listview, contextmenu

Perché il tasto destro del mouse di ContextMenu sugli elementi di ListView non funziona? - c #, .net, winforms, listview, contextmenu

Nella parte superiore di form1:

private ContextMenuStrip contextmenustrip1 = new ContextMenuStrip();

Poi:

private void listView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
ListView listView = sender as ListView;
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
ListViewItem item = listView.GetItemAt(e.X, e.Y);
if (item != null)
{
item.Selected = true;
contextmenustrip1.Show(listView, e.Location);
}
}
ContextMenu contextMenu = new System.Windows.Forms.ContextMenu();
MenuItem menuItem = new MenuItem("Cut");
menuItem.Click += new EventHandler(CutAction);
contextMenu.MenuItems.Add(menuItem);
menuItem = new MenuItem("Copy");
menuItem.Click += new EventHandler(CopyAction);
contextMenu.MenuItems.Add(menuItem);
menuItem = new MenuItem("Paste");
menuItem.Click += new EventHandler(PasteAction);
contextMenu.MenuItems.Add(menuItem);
}
}

Quando faccio clic su un oggetto utilizzando un punto di interruzione, si sta verificando l'evento ma il clic del tasto destro non funziona, ma di sicuro non mostra i menu Taglia Copia Incolla.

Voglio farlo quando faccio clic destro suelemento in listView mostrerà il menu per la voce corrente. Non sono sicuro se prima dovrei fare il mouse prima o qualche altro evento non sono sicuro di cosa sia più logico, ma l'idea è di mostrare il menu con il tasto destro del mouse sull'elemento.

risposte:

1 per risposta № 1

Non è necessario fare nulla di quanto sopra. Semplicemente, chiama il Click evento della voce di menu.

In primo luogo, imposta la modalità di visualizzazione del tuo ListView a Dettagli e quindi impostare il ContextMenuStrip Proprietà del ListView a contextMenuStrip1.

ContextMenuStrip:

Il menu di scelta rapida da visualizzare quando l'utente fa clic con il pulsante destro del mouse sul controllo.

Quindi, dire per Taglio menu, chiama il Click evento CutToolStripMenuItem. Allo stesso modo, chiama gli eventi per Copy e Paste pure e aggiungi il tuo codice.

private void CutToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count != 0)
{
foreach (ListViewItem LItem in listView1.SelectedItems)
{
//Your code
}
}
}

RIGHT_CLICK