Per i valori numerici, prova questo:

codice:
    Private Sub txtSoloNumeri_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSoloNumeri.TextChanged
        If IsNumeric(txtSoloNumeri.Text) = False Then
            txtSoloNumeri.Text = ""
        End If
    End Sub
Per individuare la virgola o un qualsiasi altro carattere, devi utilizzare e.KeyCode.