Pergunta

Eu tenho um aplicativo MDI. Quando mostro uma caixa de mensagem usando o MessageBox.show (), todo o aplicativo desaparece por trás de todas as minhas janelas abertas quando dispenso a caixa de mensagens.

O código não está fazendo nada de especial. De fato, aqui está a linha que chama a caixa de mensagens de um formulário infantil do MDI:

MessageBox.Show(String.Format("{0} saved successfully.", Me.BusinessUnitTypeName), "Save Successful", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)

Me.businessUnittypeName () é um imóvel de leitura que retorna uma string, dependendo do valor de uma variável de membro. Não há efeitos colaterais nesta propriedade.

Alguma ideia?

Foi útil?

Solução

Remova o último parâmetro, MessageBoxOptions.DefaultDesktopOnly.

A partir de Msdn:

DefaultDesktoponly fará com que o aplicativo tenha aumentado a caixa de mensagem para perder o foco. A caixa de mensagem exibida não usará estilos visuais. Para obter mais informações, consulte Renderizando controles com estilos visuais.

O último parâmetro permite a comunicação de um serviço de janelas em segundo plano com o desktop ativo por meio de meios de csrss.exe! Veja Bart de Smet's Postagem do blog para detalhes.

Outras dicas

Remova o MessageBoxOptions.DefaultDesktopOnly parâmetro e funcionará corretamente.

DefaultDesktopOnly especifica que "A caixa de mensagem é exibida no desktop ativo"O que causa a perda de foco.

Essas respostas estão corretas, mas eu queria adicionar outro ponto. Me deparei com essa pergunta enquanto trabalhava com o código de outra pessoa. Uma caixa de mensagem simples estava fazendo com que a maioria das janelas da frente se movesse para trás:

MessageBox.Show ("Hello").

Acontece que houve um comando BindingSource.Edit antes da caixa de mensagem. O BindingSource ainda não estava conectado a nenhum controle, mas fez a janela alterar as posições Z.

Estou apenas incluindo esta nota, já que minha pesquisa me levou a essa pergunta e achei que poderia ser útil para outra pessoa.

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