Når vi højreklikker på ListView-kontrollen, kan vi få det enkelte tekstindhold for det valgte element. Nu beder vi om kun at få tekstindholdet fra cellen, når man højreklikker. Sådan gør du: 1. Definér den globale musetilstand Punkt m_MBRpt; Når du højreklikker Peg 2. Håndter beskeden i listenView når musen trykkes ned privat void listView1_MouseDown(objektafsender, MouseEventArgs e) { // hvis (e.Button==MouseButtons.Right) { Få koordinaterne til skærmmusen og konverter dem til koordinaterne for listekontrollerne m_MBRpt = listView1.PointToClient(Control.MousePosition); }
} 3. Højreklik-menu - beskeden om kopi-elementet privat void COPYITEM_Click(objektafsender, EventArgs e) { Kopier indholdet af den angivne tabelcelle hvis (listView1.SelectedItems.Count <= 0) { MessageBox.Show("Ingen transaktionsinformation valgt!") , "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Information); returbillet; }
Få koordinaterne til skærmmusen og konverter dem til koordinaterne for listekontrollen (behandl og gem, når musen trykkes) Point pt = listView1.PointToClient(m_MBRpt);
ListViewItem lstrow = listView1.GetItemAt(m_MBRpt.X, m_MBRpt.Y); System.Windows.Forms.ListViewItem.ListViewSubItem lstcol = lstrow. GetSubItemAt(m_MBRpt.X, m_MBRpt.Y); streng strText = lstcol. Tekst; Sat på pastapladen SetClipboardText(strText);
} 4. Sæt indholdet på pastapladen public void SetClipboardText(streng strText) { Prøv { Udklipsholder.SetDataObject(strText); } catch (System.Exception f.eks.) { MessageBox.Show(f.eks. Besked, "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} |