Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite a todos estou começando no VB 2008 e não consigo fazer com que alguns campos funcionem direito...
Bom de inicio precisava fazer com que um textbox (dentro de um FillByToolStrip) recebesse o foco ao carregar o formulário, consegui utilizando:
Me.ActiveControl = RespostaToolStripTextBox.Control,
logo apos este campo vem um botão tb dentro do FillByToolStrip e tanto clicando no botão como dando enter no textbox, faz a pesquisa no bd e retorna um DataGridView com os resultados.
Até aqui beleza, mas como eu mudo o foco para o DataGridView agora?
Sem essa linha acima eu usava:
If e.KeyData = Keys.Enter Then
SendKeys.Send("{TAB}")
Try...e quando clicava no botão beleza ele joga direto para o proximo campo.e quando dava 2 enters dentro do textbox - que tb tava errado pois tem que ser um enter só - ele chegava no Datagridview .
Alguém sabe como mudar o foco mesmo usando o "ActiveControl" e fazer com que esse enter no textbox mande direto para o DataGridView?
Desde já agradeço,
Bjs
>
Utilize o evento KeyPress do seu TextBox ae basta:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
Me.ActiveControl = SeuControl
}Mas eu preciso que qd o formulário carrege, o text box já fique "piscando" só pra inserir o texto... nesse caso eu uso o me.ActiveControl no Form_load, mas como eu faço para dar o TAB que funciona quando eu não uso ActiveControl?
RESOLVIDO
Pra carregar no campo de texto
Dentro do Form_Load
Me.ActiveControl = RespostaToolStripTextBox.Control
e pra passar o Active control para o campo que quiser:
Private foco As Control
e no meu caso o próximo campo que eu queria era a DataGridView então
Private Sub BindingSource_BindingComplete(...)
Me.ActiveControl = foco
Tá aí pra quem quiser usar.
Utilize o evento KeyPress do seu TextBox ae basta:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
Abraços...