Firstly, I am using Visual Studio 2013

Secondly, I am converting what to me is a very large project from vb6 so changing the way it is organised is not an option - it is hard enough making a direct conversion actually work (9 months so far)

So, I have a form with 4 DataGridViews on it, each with up to 10 columns. The contents of each column can vary depending on lots of factors so it may be strings or it may be numeric data stored as strings. To change this so numeric data is actually held as numeric data will mean making dozens of changes each with the likelihood of screwing it up

So, when a user clicks on the header I want to intercept the sort routine to check if the column is composed of numeric or string data. This is so that if it is numeric it sorts as:

7
8
9
77

and not as

7
77
8
9

Worst case, I suppose I could do something like:

Code:
Private Sub GridsAll_ColumnHeaderMouseClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles _ 
  Grid1.ColumnHeaderMouseClick,
  Grid2.ColumnHeaderMouseClick,
  Grid3.ColumnHeaderMouseClick,
  Grid4.ColumnHeaderMouseClick

  ' Special sort goes here ...

End Sub
But maybe there is an easy way - all suggestions welcomed!