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

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top