Lo que no puede es convertir una cadena vacía en un valor numérico o de otro tipo (salvo String).
Antes que hacer eso tienes que hacer una validación de los datos entrantes, porque en ese campo no han cargado nada, y esa es la causa del error.
En todo caso, si vas a admitir que no carguen datos, ese TextBox debería contener un valor default en cero.
Existe la posibilidad de aprovechar otro tipo de control para ingresar cantidades o valores, como es el
MasquedTextBox, que es muy útil para estos casos.