Imports System.Windows.Forms.TextBox
Public Class Form1
' #################################################################################################
' Procedimiento esnumero
' Comprueba el textbox que desees si es numero o no y pone formato
' #################################################################################################
Private Sub esnumero(ByRef ncaja As TextBox)
If ncaja.text = "" Then
MsgBox("No has escrito nada")
Else
If Microsoft.VisualBasic.IsNumeric(ncaja.text) = False Then
MsgBox("No es un numero")
ncaja.Focus()
Else
ncaja.Text = FormatNumber(Val(ncaja.Text), -1)
End If
End If
End Sub
' #################################################################################################
' Procedimiento Calcular
' Aqui realizas los calculos oportunos
' #################################################################################################
Private Sub calcular()
' Realizar calculos
' Esto no lo hice porque no entiendo lo que quieres hacer pero defines variable a las que solo asignas valor y no las usas posteriormente. Eso no tiene sentido.
' Otra cosa, aunque visual te convierta tipo automaticamente es recomendable que uuses la funcion "val" para recoger el numero de la caja de texto.
' Ej: suma=val(cajadetexto.text)+2
End Sub
' ################################################################################################
' Evento LostFocus de la caja de texto.
' ################################################################################################
Private Sub txtdiametro_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtdiametro.LostFocus
Call esnumero(sender) 'Llamo al procedimiento que me comprueba que es numero y pone formato
' Necesitas un evento lost focus para cada caja de texto
End Sub
End Sub