Když klikneme pravým tlačítkem na ovládací ovládání ListView, můžeme získat jednotlivé textové informace vybrané položky. Nyní žádáme, abychom při pravém kliknutí dostali pouze textový obsah buňky. Zde je návod, jak na to: 1. Definujte globální stav myši Bod m_MBRpt; Když kliknete pravým tlačítkem na Point 2. Zvládněte zprávu v listView při stisknutí myši private void listView1_MouseDown(object sender, MouseEventArgs e) { // if (e.Button==MouseButtons.Right) { Získejte souřadnice myši na obrazovce a převeďte je na souřadnice ovládacích prvků seznamu m_MBRpt = listView1.PointToClient(Control.MousePosition); }
} 3. Menu pravého tlačítka – zpráva o kopírované položce private void COPYITEM_Click(object sender, EventArgs e) { Zkopírovat obsah specifikované buňky tabulky if (listView1.SelectedItems.Count <= 0) { MessageBox.Show("Nebyla vybrána žádná informace o transakci!") , "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Information); vrátit; }
Získejte souřadnice myši na obrazovce a převeďte je na souřadnice ovládání seznamu (zpracujte a uložte, když je myš stisknuta) 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. Text; Nastavte na pastovací desku SetClipboardText(strText);
} 4. Nastavte obsah pastové desky public void SetClipboardText(string strText) { zkus { Clipboard.SetDataObject(strText); } catch (System.Exception ex) { MessageBox.Show (např. Message, "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} |