Ko z desnim klikom kliknemo na kontrolo ListView, lahko dobimo posamezno besedilno vsebino izbranega elementa. Zdaj zahtevamo, da dobimo le besedilno vsebino celice, ko kliknemo z desno mišico. Tukaj je, kako: 1. Definirajte globalno stanje miške Točka m_MBRpt; Ko z desnim klikom klikneš Point 2. Obravnavajte sporočilo v listView, ko pritisnete miško private void listView1_MouseDown(object sender, MouseEventArgs e) { // if (e.Button==MouseButtons.Right) { Pridobi koordinate miške na zaslonu in jih pretvori v koordinate kontrol seznama m_MBRpt = listView1.PointToClient(Control.MousePosition); }
} 3. Meni z desnim klikom – sporočilo kopiranega elementa private void COPYITEM_Click(object sender, EventArgs e) { Kopirajte vsebino določene celice tabele if (listView1.SelectedItems.Count <= 0) { MessageBox.Show ("Ni izbrana nobena informacija o transakciji!") , "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Information); vrnitev; }
Pridobi koordinate zaslonske miške in jih pretvori v koordinate kontrolnega seznama (obdelaj in shrani, ko pritisneš miško). 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. Besedilno sporočilo; Nastavi na lepilno ploščo SetClipboardText(strText);
} 4. Nastavite vsebino lepilne plošče public void SetClipboardText(string strText) { poskusi { Clipboard.SetDataObject(strText); } catch (System.Exception ex) { MessageBox.Show(npr. Message, "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} |