ListView kontrolüne sağ tıkladığımızda, seçilen öğenin bireysel metin içeriğini elde edebiliriz. Şimdi sağ tıkladığınızda hücrenin sadece metin içeriğini almak istiyoruz. İşte nasıl yapılacak: 1. Küresel fare durumunu tanımlayın Nokta m_MBRpt; Sağ tıkladığınızda Point'e 2. Fare basıldığında listView'daki mesajı ele alın private void listView1_MouseDown(object sender, MouseEventArgs e) { // if (e.Button==MouseButtons.Right) { Ekran faresinin koordinatlarını alın ve bunları liste kontrollerinin koordinatlarına dönüştürün m_MBRpt = listView1.PointToClient(Control.MousePosition); }
} 3. Sağ tıklama menüsü - kopyalama öğesinin mesajı private void COPYITEM_Click(object sender, EventArgs e) { Belirtilen tablo hücresinin içeriğini kopyalayın if (listView1.SelectedItems.Count <= 0) { MessageBox.Show("İşlem bilgisi seçilmedi!") , "İstem", MessageBoxButtons.OK, MessageBoxIcon.Information); dönmek; }
Ekran faresinin koordinatlarını alın ve bunları liste kontrolünün koordinatlarına dönüştürün (fare basıldığında işlem ve kaydet) 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. Metin; Yapıştırma tahtosuna ayarlan SetClipboardText(strText);
} 4. Yapıştırıcı tahtanın içeriğini ayarlayın public void SetClipboardText(string strText) { Denemek { Clipboard.SetDataObject(strText); } catch (System.Exception örneğin) { MessageBox.Show(örneğin. Message, "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} |