Com o ponto deu o seguinte erro:
http://pictagem.jpo.96.lt/contas/bugs/0-154599323535ce0538e6241.64556810.png
Quanto a segunda versão:
b = Double.MinValue.ToString()
If Double.TryParse(TxtCalc.Text, b) Then 'sucesso
Else 'erro
End If
Ainda não testei, mas estava a pesquisar e encontrei está informação, ao que parece estamos a fazer mal a declaração do Pi. Passo a citar:
"Constantes
Uma constante consiste num nome que é dado a um valor numérico ou a uma cadeia de
caracteres, e que pode ser usado dentro do programa na vez desses valores. Funciona como
uma espécie de sinónimo.
A utilização de constantes em substituição dos valores que representa justifica-se pelo seguinte
facto: se um dado valor constante for utilizado muitas vezes ao longo dum programa, caso
ocorra a necessidade de o modificar, haverá necessidade de corrigir manualmente todas as
ocorrências desse valor, correndo, além disso, o risco de se enganar. Se, ao invés, for definida
uma constante com esse valor, bastará modificar essa definição inicial para que tal mudança
automaticamente se repercuta em todas as ocorrências dessa constante no decurso do
programa.
A sintaxe da definição de constantes é a seguinte:
Const nome As tipo = expressão
Por expressão entende-se um valor numérico, uma cadeia de caracteres, ou uma expressão
cujo resultado seja um destes tipos de valores.
Aqui ficam alguns exemplos de declarações de constantes:
Const Pi As Double = 3.14159265358979
Const Raio As Single = 12.5
Const Perímetro As Double = 2 * Pi * Raio "
Nota: Fui testar declarando " Const Pi As Double = 3.14159265358979 " e no botão do Pi usei " TxtCalc.Text = pi ". Continua a dar o valor 9 certo