Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ProjetoSL

Travando o foco no formulário

Recommended Posts

Olá a todos,

 

tenho um formulário, onde coloquei um botão "editar". A ideia é deixar o foco "preso" nesse botão até que o usuário clique no botão Editar. Assim os outros campos ficam "travados" de forma que o usuário não possa editá-los, mas sem mexer na propriedade Enabled deles. Fiz isso para não deixar os campos com aquela aparência "cinzenta", pois o formulário será usado para visualização de dados.

 

Tentei fazer isso usando o evento Leave do botão, fazendo com que o foco voltasse a ele. O problema é que esse evento não é lançado quando o foco está no botão e eu clico em outro campo.

 

É esse mesmo o evento a usar? Caso contrário, qual o evento lançado quando o botão perde o foco? Pelas descrições dos eventos, me pareceu ser esse...

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos,

 

tenho um formulário, onde coloquei um botão "editar". A ideia é deixar o foco "preso" nesse botão até que o usuário clique no botão Editar. Assim os outros campos ficam "travados" de forma que o usuário não possa editá-los, mas sem mexer na propriedade Enabled deles. Fiz isso para não deixar os campos com aquela aparência "cinzenta", pois o formulário será usado para visualização de dados.

 

Tentei fazer isso usando o evento Leave do botão, fazendo com que o foco voltasse a ele. O problema é que esse evento não é lançado quando o foco está no botão e eu clico em outro campo.

 

É esse mesmo o evento a usar? Caso contrário, qual o evento lançado quando o botão perde o foco? Pelas descrições dos eventos, me pareceu ser esse...

 

Obrigado.

 

 

 

Veja bem, você pode usar a propriedade "Enabled=false", mas para você deixar ele com a aparencia de "Enabled=true" so você mudar o style dele para ficar igual ao "Enabled=true".

 

Assim olha, mude para Enabled=false depois vai em "BackColor" e coloque "White" - "BaclColor=White" desta forma o fundo vai continuar em branco.

 

Ou se você quer realmente que o foco nao fique sem mexer no enabled, você vai ter que fazer uma coisa +- assim...

- imagine 2 textbox "textBox1" e "textBox2"

- não quero deixar o foco no "textBox1" quando o foco for para ele quero que o foco vá para o "textBox2"

- então no EVENTO ENTER eu deixo assim...

 

private void textBox1_Enter(object sender, EventArgs e)
{
    textBox2.Focus();
}

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado amigo,

 

tentei fazer como você falou sobre o BackColor. Deu certo, mas o texto continuou cinza, aí alterei também o ForeColor para Black, mas parece que o Enabled "passa por cima" do Fore Color... o texto continuou cinza e o pessoal não gostou muito, então comecei de novo e parti para a segunda opção.

 

Criei um evento Enter para um campo e fiz esse truque do Focus, e deu certo. O programa não deixava mais eu clicar no campo, mandando o foco direto para o botão. Mas para não ter que fazer o mesmo para cada um dos campos do form (que não são poucos), preferi fazer pelo evento Leave do próprio botão Editar. Aí foi só colocar o foco nele no FormLoad e pronto: o foco ficou preso no botão.

 

É que eu estava tendo um outro problema que me impedia de visualizar na compilação as alterações feitas... até coloquei um tópico aqui sobre isso ( http://forum.imasters.com.br/index.php?/topic/372032-projeto-salva-alteracoes-mas/ ).

 

Então, no fim, eu estava até fazendo a coisa certa, era só usar o evento Leave mesmo.

 

De qualquer forma obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.