Textbox receber somente números

Galera estou fazendo um trabalho em c# de mostrar o valor dá compra o dinheiro dado e depois mostrar o troco, só que eu não tenho muita familiaridade com o Windows form pois nosso 2 módulo do curso acabou de começar,
Alguém sabe como posso definir para o textbox só receber números e também caso falte dinheiro ele gere outro messagebox com a mensagem que falta determinado valor, caso o usuário click em calcular gere o messagebox com a mensagem de erro, e outra dúvida
o messagebox eu teria q colocar nas chaves do botão calcular certo?, quem puder me ajudar agradeço

Programador iniciante

Crie um evento Key Typed e coloque o seguinte código:

String caracteres=“0987654321”;
if(!caracteres.contains(evt.getKeyChar()+"")){
evt.consume();
}