Validar que los datos ingresados en un DataGridView sean sólo números

Problema: Tengo un grid con varias columnas, pero en dos de ellas se deben ingresar solo datos numéricos.
Solución: Modifiqué un poquito el código que encontré aquí: DataGridView con solo números

Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
        ' referencia a la celda  
        Dim validar As TextBox = CType(e.Control, TextBox)

        ' agregar el controlador de eventos para el KeyPress  
        AddHandler validar.KeyPress, AddressOf validar_Keypress
End Sub
Private Sub validar_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        ' evento Keypress  

        ' obtener índice de la columna  
        Dim columna As Integer = DataGridView1.CurrentCell.ColumnIndex

        ' comprobar si la celda en edición corresponde a la columna 1 o 2
        If columna = 1 Or columna = 2 Then
                ' Obtener caracter  
                Dim caracter As Char = e.KeyChar

                ' referencia a la celda  
                Dim txt As TextBox = CType(sender, TextBox)

                ' comprobar si es un número con isNumber, si es el backspace, si el caracter  
                ' es el separador decimal, y que no contiene ya el separador  
                If (Char.IsNumber(caracter)) Or _
                (caracter = ChrW(Keys.Back)) Or _
                (caracter = ",") And _
                (txt.Text.Contains(",") = False) Then
                        e.Handled = False
                Else
                        e.Handled = True
                End If
        End If
End Sub

Gracias a un comentario realizado en mi anterior blog, pude rescatar estas palabras.

Aquí una solución sencilla y con control de decimales.

Private Sub ValidaNro_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
' hay que poner en e format de cada columna un formato numérico para que controle solo números

        Dim FormatoColumna As String = Malla.Columns(Malla.CurrentCell.ColumnIndex).DefaultCellStyle.Format.ToString
        If FormatoColumna = "" Then Exit Sub

        Select Case e.KeyChar
            Case "0" To "9", vbBack
                e.Handled = False
            Case "."
                If FormatoColumna.Contains(".") Then
                    e.Handled = CType(sender, TextBox).Text.Contains(".")   ' verifica si ya tiene un punto decimal
                Else
                    e.Handled = True
                End If
            Case Else
                e.Handled = True
        End Select
    End Sub

Private Sub Malla_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles Malla.EditingControlShowing
        Dim ValidarNro As TextBox = e.Control
        RemoveHandler ValidarNro.KeyPress, AddressOf ValidaNro_KeyPress
        AddHandler ValidarNro.KeyPress, AddressOf ValidaNro_KeyPress
End Sub