BlueMikey
Jun 13th, 2006, 02:22 PM
I'm trying to wrap my head around the best way to code this form using object-orientation in VB.NET (2005). Basically, I am responding to the three main mouse events (down, move, up) in different ways based on a flag that is set (essentially, what button is pressed). And right now, it looks something like this inside the form:
Private flag as Flags
Private Enum Flags As Integer
Flag1
Flag2
End Enum
Private Sub Button1_Click(...) Handles Button1.Click
flag = Flags.Flag1
End Sub
Private Sub Button2_Click(...) Handles Button2.Click
flag = Flags.Flag2
End Sub
Private Sub MyViewWindow_MouseDown(...) Handles MyViewWindow.MouseDown
Select Case flag
Case Flag1
' do something
Case Flag2
' do something else
End Sub
Private Sub MyViewWindow_MouseMove(...) Handles MyViewWindow.MouseDown
Select Case flag
Case Flag1
' do something
Case Flag2
' do something else
End Sub
Private Sub MyViewWindow_MouseUp(...) Handles MyViewWindow.MouseDown
Select Case flag
Case Flag1
' do something
Case Flag2
' do something else
End Sub
It seems like there must be a better way to do this using OOP. When you consider that I actually have 10-15 flags, those event handlers become these enormous subroutines. It also seems way too procedural, that there must be a way to use delegates or other classes or something to clean this up a bit. Is there a better way?
Private flag as Flags
Private Enum Flags As Integer
Flag1
Flag2
End Enum
Private Sub Button1_Click(...) Handles Button1.Click
flag = Flags.Flag1
End Sub
Private Sub Button2_Click(...) Handles Button2.Click
flag = Flags.Flag2
End Sub
Private Sub MyViewWindow_MouseDown(...) Handles MyViewWindow.MouseDown
Select Case flag
Case Flag1
' do something
Case Flag2
' do something else
End Sub
Private Sub MyViewWindow_MouseMove(...) Handles MyViewWindow.MouseDown
Select Case flag
Case Flag1
' do something
Case Flag2
' do something else
End Sub
Private Sub MyViewWindow_MouseUp(...) Handles MyViewWindow.MouseDown
Select Case flag
Case Flag1
' do something
Case Flag2
' do something else
End Sub
It seems like there must be a better way to do this using OOP. When you consider that I actually have 10-15 flags, those event handlers become these enormous subroutines. It also seems way too procedural, that there must be a way to use delegates or other classes or something to clean this up a bit. Is there a better way?