Quando clicchiamo con il tasto destro sul controllo ListView, possiamo ottenere il contenuto testuale individuale dell'elemento selezionato. Ora chiediamo di ottenere solo il contenuto del testo della cella quando si fa clic destro. Ecco come: 1. Definire lo stato globale del mouse Punto m_MBRpt; Quando clicchi con il tasto destro Punta 2. Gestire il messaggio nella lista di visualizzazione quando si preme il mouse vuoto privato listView1_MouseDown(mittente oggetto, MouseEventArgs e) { // if (e.Button==MouseButtons.Right) { Prendi le coordinate dello schermo del mouse e convertile nelle coordinate dei controlli della lista m_MBRpt = listaVista1.PuntoToCliente(Control.MousePosition); }
} 3. Menu con il tasto destro - il messaggio dell'elemento di copia void privato COPYITEM_Click(object sender, EventArgs e) { Copia il contenuto della cella della tabella specificata if (listView1.SelectedItems.Count <= 0) { MessageBox.Show("Nessuna informazione di transazione selezionata!") , "Prompt", MessaggiBoxButtons.OK, MessageBoxIcon.Information); ritorno; }
Prendi le coordinate dello schermo del mouse e convertile nelle coordinate del controllo della lista (processa e salva quando si preme il mouse) Punto pt = listaVista1.PuntoCliente(m_MBRpt);
ListaVisualizzaElemento lstrow = listaVisualizza1.GetItemAt(m_MBRpt.X, m_MBRpt.Y); System.Windows.Forms.ListViewItem.ListViewSubItem lstcol = lstrow. GetSubItemAt(m_MBRpt.X, m_MBRpt.Y); stringa strText = lstcol. Testo; Impostato sulla tavola di incolla SetClipText(strText);
} 4. Impostare il contenuto della tavola di incolla public void SetClipText(stringa strText) { prova { Clipboard.SetDataObject(strText); } catch (System.Exception ex) { MessageBox.Show(es. Messaggio, "Prompt", MessaggiBoxButtons.OK, MessageBoxIcon.Error); }
} |