none
TextBox - Mudar cor ao ganhar e perder foco RRS feed

  • Pergunta

  • Boa tarde a todos!!

    Tenho um form com 20 TextBoxs. Quero mudar a cor do fundo deles quando ganham e perdem o foco, estou colocando o código em cada um dos TextBoxs e está funcionando, porém  gostaria de saber se existe alguma opção para eu colocar a configuração de mudança em todos de uma só vez.

    Obrigado,

     

    sexta-feira, 30 de julho de 2010 18:50

Respostas

  • é só usar os eventos Leave e Enter do Focus que estão nas propriedades do TextBox ao se clicar na aba de eventos dentro de evento Enter ele vai mudar a cor quando receber o foco no evento leave o msmo ocorre quando ele perder o foco

    public Form1
    {
      InitializeComponent();
      //evento Enter
      this.textBox1.Enter += new EventeHandler(textBox1_Enter);
      //evento Leave
      this.textBox1.Leave += new EventeHandler(textBox1_Leave);
    }
    //evento para mudar a cor ao receber o foco
    public void textBox1_Enter(object sender, EventArgs e)
    {
      textBox1.BackColor = Color.Red;
    }
    //evento para mudar a cor ao perder o 
    public void textBox1_Leave(object sender, EventArgs e)
    {
      textBox1.BackColor = System.Drawing.Color.Blue;
    }

    tenta isso ai é para dar certo se ajudar marca como resposta blz

    flw abrass se precisar tamu nu forum

    att Edney

    sexta-feira, 30 de julho de 2010 22:34
  • Prezado,

    Este outro post tem exatamente o que você está querendo fazer:

    http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/c57b0bf4-f293-4619-8675-2699f94c6f09


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 30 de julho de 2010 21:03
    Moderador

Todas as Respostas

  • A aplicação é ASP.Net???
    sexta-feira, 30 de julho de 2010 19:01
  • Desktop - Windows Form
    sexta-feira, 30 de julho de 2010 19:02
  • aponte seu evento de foco para o mesmo metodo e use o sender para descobrir qual o objeto atual...

     

    exemplo:

     

    no evento "ENTER" de todos os seus text box aponte para o seguinte método:

     

     

     private void RecebiFoco( object sender, EventArgs e )
     {
      foreach ( Object obj in this.Controls )
      {
      String cTipo = obj.ToString( );
      if ( cTipo.StartsWith( "System.Windows.Forms.TextBox" ) )
      {
       TextBox oTBAux = ( TextBox )obj;
       oTBAux.BackColor = Color.White;
      }
      }
    
      TextBox oTB = ( TextBox )sender;
      oTB.BackColor = Color.Red;
     }

     

     

    é claro q existem outras formas, talvez até melhores, mas esta foi a q eu consegui fazer rapidamente...

     

    outro exemplo mais resumido:

     

     private void RecebiFoco( object sender, EventArgs e )
     {
      foreach ( Object obj in this.Controls )
      if ( obj.ToString( ).StartsWith( "System.Windows.Forms.TextBox" ) )
       ( TextBox )obj.BackColor = Color.White;
    
      ( TextBox )sender.BackColor = Color.Red;
     }

    sexta-feira, 30 de julho de 2010 19:42
  • Prezado,

    Este outro post tem exatamente o que você está querendo fazer:

    http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/c57b0bf4-f293-4619-8675-2699f94c6f09


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 30 de julho de 2010 21:03
    Moderador
  • é só usar os eventos Leave e Enter do Focus que estão nas propriedades do TextBox ao se clicar na aba de eventos dentro de evento Enter ele vai mudar a cor quando receber o foco no evento leave o msmo ocorre quando ele perder o foco

    public Form1
    {
      InitializeComponent();
      //evento Enter
      this.textBox1.Enter += new EventeHandler(textBox1_Enter);
      //evento Leave
      this.textBox1.Leave += new EventeHandler(textBox1_Leave);
    }
    //evento para mudar a cor ao receber o foco
    public void textBox1_Enter(object sender, EventArgs e)
    {
      textBox1.BackColor = Color.Red;
    }
    //evento para mudar a cor ao perder o 
    public void textBox1_Leave(object sender, EventArgs e)
    {
      textBox1.BackColor = System.Drawing.Color.Blue;
    }

    tenta isso ai é para dar certo se ajudar marca como resposta blz

    flw abrass se precisar tamu nu forum

    att Edney

    sexta-feira, 30 de julho de 2010 22:34