[RESOLVIDO] C# - Focus Enter para 15 campos de texto

Tenho um formulário de cadastro contendo ± 15 campos do tipo TextBox, que quero que no evento “Focus Enter” seja selecionado todo o texto que está dentro do campo. Mas não quero criar uma função para cada campo.

Gostaria de saber se existe uma forma de eu criar a função e passar o TextBox como parâmetro.

Ex.:

private void Select(ref TextBox tx) {
            tx.SelectAll();
}

//e quando o focus entrar no campo passar esse campo como parâmetro..

eu já tentei chamar essa função em:

this.TextBox.Enter += new System.EventHandler(this.TextBox_Enter); //trocando o this.TextBox_Enter por this.Select mas não funciona..

A assinatura correta do delegate para esse evento é:

Se não for idêntico não vai funcionar mesmo.

sim Vini, isso eu sei, mas nenhum dos dois parâmetros, “sender” e “e”, me dizem qual foi o “textbox” que acionou o método.

Como não? O sender é justamente o TextBox que disparou o evento.

Você só precisa fazer o cast:

O sender é a origem do evento, como diz na própria documentação:

funcionou muito bem…

ahh… esqueci de acrescentar que sou novo em C#. é meu primeiro contato com a linguagem,
ainda confundo muito com java, então muitos métodos são diferentes, mas estou gostando.
pena que C# não flui no linux … :?
mas tudo bem, tropeçando e aprendendo.

obrigado ViniGodoy

Att. Éder

Bom, procure ler a documentação, a MS disponibiliza boa parte em português (ainda que parte seja de “translators”).
E procure usar o tradutor também. “source” significa “origem”.

puxando ainda o assunto.

tem como eu fazer esse cast “dinâmico”,
pois eu tenho TextBox e MaskedTextBox no meu form,
eu tentei com try{}catch{}, mas não deu certo.
to um poco sem idéias… =/

Não serve só fazer o cast para TextBoxBase?

Serve sim.
=D

Obrigado (novamente).
e boa noite