Invocando delegado UI UI faz com que para ser escondida
-
06-07-2019 - |
Pergunta
Suponha que eu tenho fio 1, o thread principal janela UI e linha 2, um segmento interface do usuário de login que é formulário modal.
Agora Thread 1 executa um pedaço de código e quer mudar um elemento de interface do usuário no formulário de login para que ele chama um delegado para mudar alguma coisa na linha 2. Mas quando ele faz isso, o formulário de login fica escondida atrás da janela principal e não há nenhuma maneira de me trazer de volta. Selecionando-o na barra de tarefas não faz nada e escrever "Activate ()" no final do método invocado não faz nada.
Como posso manter UI segmento 2 de de tornar-se escondido?
Graças
Solução
Focus () em seu formulário de login depois de invocar para atualizar a janela principal. Também pode ajudar a definir a janela pai do formulário de login para ser a janela principal quando você exibi-lo.
(em sua classe UI principal)
using (YourLoginForm f = new YourLoginForm()){
YourLoginForm.Show(this)
}
Outra abordagem pode ser usar ShowDialog () vez de Show ( ) , e ter o seu formulário de login retornar um diferente DialogResult dependendo se o login foi bem sucedido ou não. ShowDialog () deve definir automaticamente o seu formulário de login para ser modal e ter o foco.
Outras dicas
wow .... auto pwn. k, o desaparecendo segunda janela coisa é um não-questão
Mas a pergunta no comentário ainda está de pé .... Quando eu faço ShowDialog em um segundo segmento, como faço para evitar que a nova janela de agir separadamente da janela principal? ou seja, eu não quero o usuário para minimizar a janela principal enquanto ele está por trás da segunda janela. Se outro programa vem em cima e se esconde tudo, clicando no ícone da janela principal na barra de tarefas tem de abrir a segunda janela com ele etc