none
Colocar foco em controle no form load nao funciona. RRS feed

  • Pergunta

  •  

    Galera, bom dia.

    Tenho um aplicativo que no Form Load ou no construtor da classe seto o foco de um "maskedtextbox", ele carrega mas o foco nao vai para o controle... Alguem consegue me ajudar a fazer funcionar?

    Vlw.

     

    domingo, 13 de abril de 2008 14:12

Respostas

  • bosscoder,

     

    um exemplo em C# de como resolver esse problema:

     

    Code Snippet

    protected void Page_Load(object sender, EventArgs e)

    {

    TextBox tb = (TextBox)logFormLogin.FindControl("userName");

    StringBuilder sb = new StringBuilder();

    sb.AppendLine("function SetFocus() {");

    sb.AppendLine(" document.getElementById('" + tb.ClientID + "').focus();");

    sb.AppendLine("}");

    sb.AppendLine("function DeferCall() {");

    sb.AppendLine(" setTimeout('SetFocus()', 250);");

    sb.AppendLine("}");

    sb.AppendLine("window.onload = DeferCall;");

    ScriptManager.RegisterStartupScript(this, this.GetType(), "focus", sb.ToString(), true);

    }

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

    domingo, 13 de abril de 2008 20:39
  • Você pode usar o evento Activated do form para fazer isto. Por exemplo:

     

    Code Snippet

    private void frmPrincipal_Activated(object sender, EventArgs e)

    {

    textBox1.Focus();

    }

     

     

     

    []s,

     

     

    segunda-feira, 14 de abril de 2008 00:33
  • Bosscoder

     

    Voce pode colocar tambem o foco no evento Show do formulario no caso quando o formulario for aberto.

     

    maskedtextbox.focus();

     

    Abraço.

     

    Espero ter ajudado

     

    segunda-feira, 14 de abril de 2008 11:20

Todas as Respostas

  • bosscoder,

     

    um exemplo em C# de como resolver esse problema:

     

    Code Snippet

    protected void Page_Load(object sender, EventArgs e)

    {

    TextBox tb = (TextBox)logFormLogin.FindControl("userName");

    StringBuilder sb = new StringBuilder();

    sb.AppendLine("function SetFocus() {");

    sb.AppendLine(" document.getElementById('" + tb.ClientID + "').focus();");

    sb.AppendLine("}");

    sb.AppendLine("function DeferCall() {");

    sb.AppendLine(" setTimeout('SetFocus()', 250);");

    sb.AppendLine("}");

    sb.AppendLine("window.onload = DeferCall;");

    ScriptManager.RegisterStartupScript(this, this.GetType(), "focus", sb.ToString(), true);

    }

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

    domingo, 13 de abril de 2008 20:39
  • Você pode usar o evento Activated do form para fazer isto. Por exemplo:

     

    Code Snippet

    private void frmPrincipal_Activated(object sender, EventArgs e)

    {

    textBox1.Focus();

    }

     

     

     

    []s,

     

     

    segunda-feira, 14 de abril de 2008 00:33
  • Bosscoder

     

    Voce pode colocar tambem o foco no evento Show do formulario no caso quando o formulario for aberto.

     

    maskedtextbox.focus();

     

    Abraço.

     

    Espero ter ajudado

     

    segunda-feira, 14 de abril de 2008 11:20
  • Galera, resolvido.

    Todas tres dicas funcionaram. Optei pelo metodo Shown pela simplicidade.

    Abraco a todos.

     

    segunda-feira, 14 de abril de 2008 12:02