> Yes it is. You're using a handles statement which is registering each
> method with the event. You'd be better off with something more like this:
[quoted text clipped - 67 lines]
> > Thank you,
> > Doug.
Hi Dennis
I disagree with what you have posted.
> I think you can do the same thing by using the "OnMouseUp" overridable event
> of the base class:
This would require he subclass the datagrid class it wouldn;t work using
his current form class. Which means displaying message boxes from controls
which is really ugly.
> In the derived class:
>
[quoted text clipped - 3 lines]
> 'Do you thing here and don't call MyBase.OnMouseUp since this would in turn
> call the MouseUp event in your base class.
He must call MyBase.OnMouseUp ( or whatever he decides to call it) as he
has functionlity that he wishes to run in the base class. He hasn't said
he's trying to suppress the event. He simply wants to run some code in base
class to derived class order which is the whole point of using
MyBase.OnMouseUp first.
If you want to fire the MouseUp
> event in the program's parent, then you can set up an event called mouseup in
> the derived class and raise that event in this sub.
[quoted text clipped - 4 lines]
>
> End Sub
Why does he need to create another event called MouseUp? He already has
this event in both the form and the datagrid? And how does this code fire
that event?
MyBase.OnMouseUp(e) calls the sub in the base class would in turn fires the
base class MouseUp event not his custom event.
> > Yes it is. You're using a handles statement which is registering each
> > method with the event. You'd be better off with something more like this:
[quoted text clipped - 67 lines]
> > > Thank you,
> > > Doug.
dbuchanan - 28 Apr 2005 19:20 GMT
Richard and Dennis,
Thank you for your discussion. In the mean time I made a few
discoveries and ended solving it in the following manner.
'Base Class
Protected Overridable Sub DataGrid1_MouseUp(ByVal sender As Object,
ByVal e As System.Windows.Forms.MouseEventArgs) Handles
DataGrid1.MouseUp
'MessageBox.Show("DataGrid1_MouseUp - frmForm1")
'Highlight the entire row
'Get the X and Y of the DataGrid from the mouse event
Dim pt As New Point(e.X, e.Y)
Dim hti As DataGrid.HitTestInfo = Me.DataGrid1.HitTest(pt)
If hti.Type = DataGrid.HitTestType.Cell Then
'Me.DataGrid1.CurrentCell = New DataGridCell(hti.Row,
hti.Column)
Me.DataGrid1.Select(hti.Row)
End If
'MessageBox.Show("Row highlighted")
End Sub
'Derived Class
Protected Overrides Sub DataGrid1_MouseUp(ByVal sender As Object,
ByVal e As System.Windows.Forms.MouseEventArgs) Handles
DataGrid1.MouseUp
'MessageBox.Show("DataGrid1_MouseUp - frmForm1")
MyBase.DataGrid1_MouseUp(sender, e)
'Local implementation
Call PopulateStatusBarData()
Call RowSelectedToEdit()
End Sub
Is this the most efficient way to do this?
-Doug