首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法订阅PowerPacks.Shape.Click事件

无法订阅PowerPacks.Shape.Click事件
EN

Stack Overflow用户
提问于 2016-09-11 19:35:57
回答 1查看 56关注 0票数 0

帮助捕获OvalShape的鼠标。

我有一个带有picturebox (myPictureBox)的表单。

当您单击myPictureBox上的任何位置时,myPictureBox.click会触发- OvalShape1。

当您第二次单击时,myPictureBox.click会触发并在此时绘制OvalShape2。

如果您单击...except的内部或边框,则为OvalShape1。然后选择OvalShape1,不引发myPictureBox.click。

如何捕获OvalShape1.单击事件?

MSDN代码没有帮助:https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.powerpacks.shape.click.aspx

B/C我得到A:

Error BC30506 Handles子句需要在包含类型或其基类型之一中定义的WithEvents变量。

我很难弄清楚如何向OvalShape1添加一个处理程序

完整代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-11 22:39:07

你所犯的错误告诉你到底是怎么回事。每当您使用clause时,您要订阅的事件的变量必须声明为WithEvents

将其添加到您的OvalShape#声明中,您应该可以这样做:

代码语言:javascript
复制
Public WithEvents OvalShape1, OvalShape2, OvalShape3 As New Microsoft.VisualBasic.PowerPacks.OvalShape

另外,还应该在事件处理程序方法中包括事件的参数:

代码语言:javascript
复制
Private Sub OvalShape1_Click(sender As Object, e As EventArgs) Handles OvalShape1.Click
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39439909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档