Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 20353|Yanıt: 0

[WinForm] C#, listview'de fareye sağ tıklayarak hücrenin içeriğini alır

[Bağlantıyı kopyala]
Yayınlandı 29.01.2015 15:15:34 | | |

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);            
            }
            
        }




Önceki:Dell Server Hata Kodları ve Çözümleri 2013 Sürümü
Önümüzdeki:DIV+CSS yuvarlatılmış kenarlar
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com