Você está aqui: C# ::: Windows Forms ::: Formulários e Janelas |
Usando a propriedade DialogResult para retornar o resultado do fechamento de uma janela de diálogoQuantidade de visualizações: 14589 vezes |
Caixas de diálogos são, em geral, formulários normais que sofrem algumas modificações de forma a alterar seu comportamento e a forma com a qual o usuário lidará com os mesmos. Imaginemos, inicialmente, um formulário para a digitação de um nome de usuário e senha. Aqui o comportamento padrão da aplicação é parar quaisquer outros procedimentos e concentrar apenas no resultado do formulário de usuário e senha. Se o usuário informar os dados corretamente e pressionar o botão OK, o processamento do formulário principal continua. Do contrário qualquer outra ação pode ser iniciada. Assim, caixas de diálogos são formulários ou janelas secundários que exibimos com o propósito de obter alguma informação necessária para continuar uma determinada tarefa. Por serem exibidas de forma modal, a execução do código da janela principal é interrompida até que a caixa de diálogo seja fechada. É comum, na programação Windows, o formulário principal querer saber o resultado do fechamento da janela de diálogo, ou seja, o usuário pressionou o botão OK? Ou foi o botão Cancelar? Para isso podemos usar a propriedade DialogResult. a) Comece criando uma janela secundária para a aplicação. Vá em Project -> Add Windows Form. Marque Windows Form e dê um nome a ele, por exemplo, "Dialogo.cs". Clique o botão Add; b) Já temos o novo formulário. Agora vamos transformá-lo em uma caixa de diálogo modal. Altere as propriedades abaixo para seus novos valores: FormBorderStyle = FixedDialog MaximizeBox = False MinimizeBox = False ShowInTaskBar = False StartPosition = CenterParent c) Coloque dois botões no formulário secundário. Dê o nome btnOK para o primeiro botão. Altere sua propriedade Text para "OK" e defina o valor "OK" para sua propriedade DialogResult. Dê o nome btnCancelar para o segundo botão. Altere sua propriedade Text para "Cancelar" e defina o valor "Cancel" para sua propriedade DialogResult. d) Agora vamos abrir a janela secundária a partir da primeira janela. Coloque o código abaixo no evento Click de um botão: private void button1_Click(object sender, EventArgs e){ // vamos criar a caixa de diálogo e exibí-la Dialogo dialogo = new Dialogo(); // vamos exibir de forma modal dialogo.ShowDialog(); // o código abaixo é executado depois que a janela de diálogo // é fechada if(dialogo.DialogResult == DialogResult.OK){ MessageBox.Show("O botão OK foi pressionado"); Execute a aplicação e clique no botão. A janela de diálogo será exibida. Clique no botão OK ou Cancelar e veja o resultado. Note que a janela é fechada imediatamente e o resultado do fechamento é fornecido à janela pai. Há muita coisa acontecendo aqui, mas o mais importante é perceber que quando atribuímos valores para a propriedade DialogResult dos botões de uma janela de diálogo, não há a necessidade de chamar o método Close() da janela quando os botões forem pressionados. Além disso, fechar a janela clicando no X do canto superior direito causa o mesmo efeito de DialogResult.Cancel. Os valores disponíveis na enumeração DialogResult são: Abort - O valor de retorno da caixa de diálogo é Abort (geralmente enviado a partir de um botão com o texto "Abortar"; Cancel - O valor de retorno da caixa de diálogo é Cancel (geralmente enviado a partir de um botão com o texto "Cancelar"; Ignore - O valor de retorno da caixa de diálogo é Ignore (geralmente enviado a partir de um botão com o texto "Ignorar"; No - O valor de retorno da caixa de diálogo é No (geralmente enviado a partir de um botão com o texto "Não"; None - Não há retorno da caixa de diálogo, o que significa que a janela modal continua executando; OK - O valor de retorno da caixa de diálogo é OK (geralmente enviado a partir de um botão com o texto "OK"; Retry - O valor de retorno da caixa de diálogo é Retry (geralmente enviado a partir de um botão com o texto "Repetir"; Yes - O valor de retorno da caixa de diálogo é Yes (geralmente enviado a partir de um botão com o texto "Sim". |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |