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 № 1Non è 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
}
}
}