我希望我能说清楚我的问题是什么。我已经制作了自己的图表控件
Public Class MyChart
Inherits Chart
[...]
End Class
在这个课程中,我处理图表的MouseDown事件,并执行缩放,拖动标记等操作。
在我正在使用图表的项目中,我还处理MouseDown事件以执行更具体的操作。现在有这个问题:
在MyChart类的MouseDown事件处理程序中,我使用鼠标中键拖动图表。
然而,在项目MouseDown事件处理程序中,我检查用户是否点击了特定对象,并希望让他也用鼠标中键拖动此对象。问题是,MyChart中的处理程序首先执行,因此我无法检查用户是否点击了该对象(因此启动了对该对象的拖动)。
我需要的是首先执行项目中的事件处理程序,然后执行MyChart中的事件处理程序。
希望更清楚:
(Dummy Code)
Public Class SomeProject
WithEvents Chart as MyChart
Public Sub Chart_MouseDown(sender as object, e as MouseEventArgs) Handles Chart.MouseDown
'This is executed second, but should be executed first.
End Sub
End Class
Public Class MyChart
Inherits Chart
Public Sub MyChart_MouseDown(sender as object, e as MouseEventArgs) Handles Me.MouseDown
'This is executed first, but should be executed second.
End Sub
End Class
我有什么方法可以做到这一点吗?
答案 0 :(得分:2)
尝试创建自己的活动:
Public Class MyChart
Inherits Chart
Public Event ChartMouseDown(sender As Object, e As MouseEventArgs)
Protected Overrides Sub OnMouseDown(e As MouseEventArgs)
RaiseEvent ChartMouseDown(Me, e)
MyBase.OnMouseDown(e)
// your second code here...
End Sub
End Class
然后您的项目代码如下所示:
Public Class SomeProject
WithEvents Chart as MyChart
Public Sub Chart_ChartMouseDown(sender as object, e as MouseEventArgs) _
Handles Chart.ChartMouseDown
// your first code here...
End Sub
End Class