Όταν κάνουμε δεξί κλικ στο στοιχείο ελέγχου ListView, μπορούμε να λάβουμε το μεμονωμένο περιεχόμενο κειμένου του επιλεγμένου στοιχείου. Τώρα ζητάμε να λάβουμε μόνο το περιεχόμενο κειμένου του κελιού όταν κάνουμε δεξί κλικ. Δείτε πώς: 1. Καθορίστε την παγκόσμια κατάσταση του ποντικιού Σημείο m_MBRpt· Όταν κάνετε δεξί κλικ στην επιλογή Κατάδειξη 2. Χειριστείτε το μήνυμα στη λίσταΠροβολή όταν πατηθεί το ποντίκι ιδιωτικό κενό listView1_MouseDown(αποστολέας αντικειμένου, MouseEventArgs e) { // if (e.Button==MouseButtons.Right) { Λάβετε τις συντεταγμένες του ποντικιού οθόνης και μετατρέψτε τις στις συντεταγμένες των στοιχείων ελέγχου λίστας m_MBRpt = listView1.PointToClient(Control.MousePosition); }
} 3. Κάντε δεξί κλικ στο μενού - το μήνυμα του αντιγράφου ιδιωτικό κενό COPYITEM_Click(αποστολέας αντικειμένου, EventArgs e) { Αντιγράψτε τα περιεχόμενα του καθορισμένου κελιού πίνακα if (listView1.SelectedItems.Count <= 0) { MessageBox.Show("Δεν έχουν επιλεγεί πληροφορίες συναλλαγής!") , "Προτροπή", MessageBoxButtons.OK, MessageBoxIcon.Information); επιστροφή; }
Λάβετε τις συντεταγμένες του ποντικιού οθόνης και μετατρέψτε τις στις συντεταγμένες του στοιχείου ελέγχου λίστας (επεξεργαστείτε και αποθηκεύστε όταν πατηθεί το ποντίκι) Σημείο 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); συμβολοσειρά strText = lstcol. Κείμενο; Ρυθμίστε στον πίνακα επικόλλησης SetClipboardText(strText);
} 4. Ορίστε το περιεχόμενο του πίνακα επικόλλησης public void SetClipboardText(string strText) { Δοκιμάστε { Πρόχειρο.SetDataObject(strText); } αλιεύματα (Σύστημα.Εξαίρεση πρώην) { MessageBox.Show(π.χ. Μήνυμα, "Προτροπή", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} |