Po kliknięciu prawym przyciskiem na ListView możemy zobaczyć poszczególne treści tekstu wybranego elementu. Teraz prosimy, aby po kliknięciu prawym przyciskiem myszy otrzymać tylko treść tekstu komórki. Oto jak: 1. Zdefiniuj globalny stan myszy Punkt m_MBRpt; Gdy klikasz prawym przyciskiem myszy Point 2. Obsłużenie wiadomości w listView po naciśnięciu myszy prywatna pustka listView1_MouseDown(nadawca obiektu, MouseEventArgs e) { // if (e.Button==MouseButtons.Right) { Pobierz współrzędne myszy ekranowej i przekonwertuj je na współrzędne listy kontrolnych m_MBRpt = listView1.PointToClient(Control.MousePosition); }
} 3. Menu kliknięcia prawym przyciskiem myszy – wiadomość dotycząca elementu kopiowania private void COPYITEM_Click(nadawca obiektu, EventArgs e) { Skopiuj zawartość podanej komórki tabeli if (listView1.SelectedItems.Count <= 0) { MessageBox.Show("Brak wybranych informacji o transakcji!") , "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Information); wrócić; }
Pobierz współrzędne myszy ekranowej i przekonwertuj je na współrzędne listy sterującej (przetwarzaj i zapisuj po naciśnięciu myszy) 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); string strText = lstcol. Tekst; Ustaw na płytce kleju SetClipboardText(strText);
} 4. Ustaw zawartość tablicy wklejonej public void SetClipboardText(string strText) { spróbuj { Clipboard.SetDataObject(strText); } catch (System.Exception ex) { MessageBox.Show (np. Message, "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} |