2012-03-28 13 views
0

私は動的に塗りつぶされたDataGridビューを持っています。ユーザーがDataGridview内のセルを右クリックすると、そのセルにあるコンテキストメニューが開きます。コンテキストメニューには、AとBの2つの選択肢があります。Aを選択するとセルの値をAに設定し、Bを選択する場合はBにセルの値を設定します。ユーザーがコンテキストメニューのツールストリップ項目をクリックした後にカスタムイベントargを渡す方法

私は理想的には、 ContextMenuのToolStripItem.clickに渡されたイベントのフィールドとして使用します。だから、のToolStripItem Aのクリックイベントのハンドラは、イベント引数から関連するセルを読んで、このように、Aに設定してしまう...

Private Sub A_Click(ByVal sender As System.Object, ByVal e As Customized System.EventArgs) Handles A.Click 
    e.relevantCell.Value=A 
End Sub 

しかし、私はカスタムイベント引数を渡す方法を見つけ出すことはできません。またはこれを行う簡単な方法がある場合は?コンテキストメニュー/マウスは関連するセルでは必要ないため、私はX座標とY座標を使うことはできません。

答えて

1

を決定するために、そのオブジェクトを使用し、その後のToolStripItemとして、送信者の引数をキャストし、メニュー項目をクリックすると、タグからセルを取得し、それが価値

てみます設定:

A.Tag = Cell you want to set to A after A is clicked 

Private Sub A_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles A.Click 
    CType(A.Tag, DataGridViewTextBoxCell).Value = "A" 
End Sub 
+0

しかし、どのように私はカスタムイベントargを渡すのですか? (関連するセルプロパティを持つ) – bernie2436

+0

あなたは、タグを設定するだけでいいですが、 –

+0

ですが、イベント引数には通常relevantCellフィールドがありません。私はイベント引数のこのプロパティを設定する必要があります。 – bernie2436

0

はその後で、あなたは(オブジェクトを受け入れる)Tagプロパティに所望の細胞を置くことができるかもしれませタイプAまたはB

If CType(sender, ToolStripItem).Text = "A" Then 'Or Text of A 

    'Work to Update Cell 

End If 
+0

しかし、どのように私は、関連するセルを得るのですか? – bernie2436

関連する問題