Erros em windows form

galera to com um problema, quando rodo o programa vai tudo bem em uma parte na outra que é o messagebox que pede para digitar algum valor, porque ele esta em branco, ele envia a mensagem tudo certo mas eu gostaria que depois que a mensagem surgisse, e o usuario apertar ok, ele pudesse digitar o valor novamente, e não que ele executa-se o programa,
mas acontece que depois que aparece a mensagem e eu dou ok ele continua executando o codigo mesmo sem valor
e da um erro alguem poderia me explicar como faço para que depois da mensagem, ele pedir para o usuario digitar algum valor para seguir com a execução.

obs, eu quero tambem validar para ele somente receber numeros alguem sabe como, mas sem usar o keychar,

programador iniciante

Ajude a te ajudarem. Você falou que dá erro mas não mostrou a mensagem de erro, nem stacktrace.

não formulei muito bem é tipo assim

se eu não digitar nada e apertar para calcular ele reconhece e envia pra min a messabox pedindo para eu digitar algo
quando eu dou OK no aviso ele continua executando o programa e não deixa que eu digite novamente;

o erro era que ele segui executando o programa mesmo sem ter nada para calcular e parava

na imagem mostra onde ele para

Ele continua porque você não instruiu ele pra parar, messagebox não faz parar a execução após fechar. Dá uma revisada sobre a linguagem C#. Considerando o que você fez, faltou chamar return após o messagebox.

Exemplo: https://social.msdn.microsoft.com/Forums/pt-BR/7538f35d-5b24-487a-9825-33e2985cb765/qual-a-finalidade-do-return-em-c?forum=vscsharppt

vlw man não tinha percebido obrigado pela ajuda

sobre a outra pergunta vc consegue me dizer como consigo validar o textbox para receber somente numeros e para a saida ser decimal porque estou fazendo um simulador de compra

mais uma vez obrigado por antes;

Você pode usar o controle MaskedTextBox ou usar essa solução: https://social.msdn.microsoft.com/Forums/pt-BR/39047473-ff10-4cef-b7ee-288fb6a35ad2/mascara-de-moeda-no-textbox-windowsforms-c?forum=504