Das ist besagter Sub:
Aus der abstrakten Oberklasse:
Wie man sieht wird der Sub einer abstrakten Oberklasse überschrieben. Wenn beide Subs den gleichen Handler haben, wird die Funktion 2x getriggert, aber immer nur der überschriebene Code ausgeführt. Ändere ich einen der beiden Handler auf Mouse.Click, wird die Funktion nur 1x getriggert.
Ich habe das Verhalten jetzt damit umgangen, dass ich den ausgeführten Code in einen eigenen Sub ausgegliedert habe und nur diesen überschreibe und den Sub mit dem MouseDown-Handler unberührt lasse.
Trotzdem würde ich gerne verstehen, wieso der überschreibende Sub im oben dargestellten Fall 2x getriggert wird.
VB.NET-Quellcode
- Public Class AdvLineChart
- Inherits AdvancedChart
- Protected Overrides Sub Chart_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
- Mainform.tempCLickCounter += 1
- Debug.WriteLine("line trigger: " & Mainform.tempCLickCounter)
- If canBeDrilled Then
- 'auszuführender Code
- End If
- End Sub
Aus der abstrakten Oberklasse:
VB.NET-Quellcode
- Public MustInherit Class AdvancedChart
- Protected Overridable Sub Chart_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
- Mainform.tempCLickCounter += 1
- Debug.WriteLine("adv trigger: " & Mainform.tempCLickCounter)
- If canBeDrilled and Me.Series.Count = 1 Then
- 'auszuführender Code
- End If
- End Sub
Wie man sieht wird der Sub einer abstrakten Oberklasse überschrieben. Wenn beide Subs den gleichen Handler haben, wird die Funktion 2x getriggert, aber immer nur der überschriebene Code ausgeführt. Ändere ich einen der beiden Handler auf Mouse.Click, wird die Funktion nur 1x getriggert.
Ich habe das Verhalten jetzt damit umgangen, dass ich den ausgeführten Code in einen eigenen Sub ausgegliedert habe und nur diesen überschreibe und den Sub mit dem MouseDown-Handler unberührt lasse.
Trotzdem würde ich gerne verstehen, wieso der überschreibende Sub im oben dargestellten Fall 2x getriggert wird.
Option strict = on
If it's stupid and it works it ain't stupid.
If it's stupid and it works it ain't stupid.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Nils_Kr“ ()