2011-08-24 43 views
7

私は自分のフォームにDataGridView(dgv1)を持っています。特定のセルでは、ユーザーが右クリックして、「COPY」を選択してセルの内容をクリップボードにコピーできるようにしたいと思います。誰でもチュートリアルやC#でこれを達成する方法を示すサイトの方向に私を指すことができますか?DataGridViewの右クリックメニュー/コピーの例?

ありがとうございます!

答えて

15

これを行うには、ContextMenuStripを使用できます。 (または事前VS2k5用の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; 

上記のリンクの詳細情報があります。

+0

これは、回答に含まれていませんでした(ただし、提供されたリンクにあります):private void dataGridView1_CellMouseDown(Object sender、DataGridViewCellMouseEventArgs e) { row = e.RowIndex; col = e.ColumnIndex; } –

2

右クリックすると、COPYオプションのコンテキストメリットを作成することができます。

rightclickイベントハンドラのdatagridviewプロパティで、このコンテキストmenustripをリンクします。

そしてコピーをクリックの上、あなたはClipboard.settext(Datagriditem.valueを)言って、別の機能を持つ

このリンクを使用すると、右クリックメニューを取得する方法を見つけ出す手助けする必要があります。

right click context menu for datagridview

、クリップボードにデータを取得するためにClipboard.Setdataobjectを使用しています。

+1

なぜこのセットが答えになったのですか、私はちょうど@Kashinath Shenoyがコード例を与えるのがいいと思ったのですか? – Coops

+0

おっと!あなたは正しいです!私は実際に私がKashinathの答えを選んだと思った。どうやら、私は間違った答えをクリックした。私は私のコードでKashinathの例を使用して終了しました。 – Kevin