2011-08-24 28 views
7

Formumda bir DataGridView (dgv1) var. Belirli bir hücrede, kullanıcının hücrenin içeriğini panoya kopyalamak için sağ tıklayıp "KOPYALA" seçeneğini seçmesini istiyorum. Birisi bana C# 'da bunun nasıl yapılacağını gösteren bir öğretici veya site yönünde işaret edebilir mi?DataGridView sağ tıklama menüsü/kopya örneği?

Teşekkürler!

cevap

15

Bunu gerçekleştirmek için ContextMenuStrip kullanabilirsiniz. (Ya öncesi VS2k5 için ContextMenu)

Excerpt from this article:

ContextMenuStrip mnu = new ContextMenuStrip(); 
ToolStripMenuItem mnuCopy = new ToolStripMenuItem("Copy"); 
ToolStripMenuItem mnuCut = new ToolStripMenuItem("Cut"); 
ToolStripMenuItem mnuPaste = new ToolStripMenuItem("Paste"); 
//Assign event handlers 
mnuCopy.Click += new EventHandler(mnuCopy_Click); 
mnuCut.Click += new EventHandler(mnuCut_Click); 
mnuPaste.Click += new EventHandler(mnuPaste_Click); 
//Add to main context menu 
mnu.Items.AddRange(new ToolStripItem[] { mnuCopy, mnuCut, mnuPaste}); 
//Assign to datagridview 
dataGridView1.ContextMenuStrip = mnu; 

yukarıdaki linke daha fazla bilgi bulunmaktadır .

+0

Yalnızca bu yanıttan eksikti (ancak sağlanan bağlantıda): özel geçersiz veriGridView1_CellMouseDown (nesne gönderen, DataGridViewCellMouseEventArgs e) { row = e.RowIndex; col = e.ColumnIndex; } –

2

Sen sağ tıkladığınızda KOPYA seçeneği için bir ContextMenuStrip oluşturmak isteyebilirsiniz.

Ve rightclick EventHandler içinde DataGridView özelliklerinde

, bu ContextMenuStrip bağlar.

Ve kopyasını tıklayarak üzerinde

, başka sen Clipboard.settext (Datagriditem.value) demek fonksiyonu

Bu bağlantı sağ tıklama menüsüne nasıl anlamaya yardımcı olmalıdır var.

right click context menu for datagridview

Ve panoya içine veri almak için Clipboard.Setdataobject kullanın.

+1

Niçin bu cevabın cevabı bu kadar önemliydi, sadece kod örneği veren @Kashinath Shenoy'un güzel olduğunu düşündüm mü? – Coops

+0

Whoops! Haklısın! Aslında Kashinath'ın cevabını seçtiğimi düşündüm. Görünüşe göre, yanlış cevabı tıklıyorum. Kashinath'ın benim kodumdaki örneğini kullanarak bitirdim. – Kevin