2016-09-11 17 views
0

OvalShapeのマウスキャプチャのキャプチャに関するヘルプ。PowerPacks.Shape.Clickイベントを購読できません

私はピクチャボックス(myPictureBox)でフォームを持っています。

myPictureBoxの任意の場所をクリックすると、myPictureBox.clickが発生します。その時点でOvalShape1が描画されます。

2回目をクリックすると、myPictureBox.clickが発生し、その時点でOvalShape2が描画されます。

...内部をクリックした場合、またはOvalShape1の境界線をクリックした場合を除きます。次に、OvalShape1が選択され、myPictureBox.clickが呼び出されません。

OvalShape1.Clickイベントをキャプチャするにはどうすればよいですか?

MSDNコードしない人:BC30506句を含むタイプまたはその基本タイプのいずれかで定義されたWITHEVENTS変数を必要とするハンドル
エラー:https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.powerpacks.shape.click.aspx

B/C Iが得ます。

私はOvalShape1

に完全なコードをハンドラを追加する方法を考え出すhardtime持っています:あなたが得る

Public Class Form1 

Public canvas As New Microsoft.VisualBasic.PowerPacks.ShapeContainer 
Public OvalShape1, OvalShape2, OvalShape3 As New Microsoft.VisualBasic.PowerPacks.OvalShape 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    canvas.Parent = myPictureBox 
    OvalShape1.Parent = canvas 
    OvalShape2.Parent = canvas 
    OvalShape3.Parent = canvas 
End Sub 

Private Sub myPictureBox_Click(sender As Object, e As EventArgs) Handles myPictureBox.Click 

..additional code to start drawing ovalshapes which works fine 

End Sub 


Private Sub OvalShape1_Click() Handles OvalShape1.Click 
    msgbox("you have cicked the OvalShape1") 
End Sub 


End Class 
+0

あなたタイトルはちょっと誤解されていますが、イベントは_発生していないため、登録できません。 –

答えて

0

エラーが起こっている正確に何を説明します。 Handles clauseを使用する場合は、購読しているイベントの変数をWithEventsと宣言する必要があります。

あなたOvalShape#宣言にそれを追加し、あなたが行くために良いことがあります:サイドノートで

Public WithEvents OvalShape1, OvalShape2, OvalShape3 As New Microsoft.VisualBasic.PowerPacks.OvalShape 

を、あなたもあなたのイベントハンドラメソッド内のイベントのパラメータを含める必要があります。

Private Sub OvalShape1_Click(sender As Object, e As EventArgs) Handles OvalShape1.Click 
+0

....だからシンプルです。 – user3208998

+0

@ user3208998:時には鼻の下にあるものを逃すことがあります:)。問題が解決した場合は、左側のチェックマークを押して、これを受け入れられた回答としてマークしてください。そうすることで、回答者には評判のポイント15、評判2の評判には報酬が与えられます。 –

関連する問題