ProjetoSL 0 Denunciar post Postado Novembro 20, 2009 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
waldyhester 0 Denunciar post Postado Novembro 28, 2009 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
ProjetoSL 0 Denunciar post Postado Novembro 28, 2009 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
Untill 0 Denunciar post Postado Novembro 29, 2009 No evento Lostfocus adicione a instrução Setfocus. Compartilhar este post Link para o post Compartilhar em outros sites