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álogo

Quantidade de visualizações: 14539 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:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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");
  }
  else if(dialogo.DialogResult == DialogResult.Cancel){
    MessageBox.Show("O botão Cancelar foi pressionado");
  }
  else{
    MessageBox.Show("A janela foi fechada de outra forma");
  }
}

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".

Link para compartilhar na Internet ou com seus amigos:

C# ::: Dicas & Truques ::: Strings e Caracteres

C# para iniciantes - Qual a diferença entre string e String?

Quantidade de visualizações: 46 vezes
Muitos usuários do nosso site nos enviam essa pergunta, pois ficam confusos com a escrita de "string" e "String". Nesta dica mostrarei a diferença entre esses dois tipos de dados. Comece analisando o código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos{
  class Program{
    static void Main(string[] args) {
      string frase = "Sou uma string";
      String outra = "Sou outra string";

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Se você tentar compilar o código acima, verá que ele não somente compila como também executa sem problemas. Isso acontece porque, do ponto de vista do compilador e interpretador C#, não há diferença alguma entre "string" e "String".

O tipo string representa uma string de caracteres Unicode (16 bits - 2 bytes) e é um apelido para a classe String da plataforma .NET. O fato de os projetistas da linguagem C# terem permitido a escrita toda em letras minúsculas se deve à frequência com que esse tipo é usado em nossos códigos, se asemelhando aos tipos primitivos int, float, double, etc.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como transformar uma string em um array de caracteres em C# usando o método ToCharArray()

Quantidade de visualizações: 13587 vezes
O método ToCharArray() da classe String da linguagem C# permite retornar um array de char contendo todos os caracteres presente na string original. Podemos tirar proveito disso para manipular os caracteres individuais de uma palavra, frase ou texto.

Veja um código C# completo no qual demonstramos o seu uso:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de C#";
      Console.WriteLine("String original: " + frase);

      // obtém um array de caracteres a partir da string
      char[] letras = frase.ToCharArray();

      // exibe os caracteres no array
      for (int i = 0; i < letras.Length; i++) {
        Console.WriteLine(letras[i]);
      }

      Console.WriteLine("Pressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

String original: Gosto de C#
G
o
s
t
o

d
e

C
#


C# ::: Dicas & Truques ::: Arquivos e Diretórios

Como retornar a data e hora da criação de um diretório em C# usando a função GetCreationTime() da classe Directory

Quantidade de visualizações: 10 vezes
Nesta dica mostrarei como usar o método GetCreationTime() da classe Directory do C# para obter e retornar a data e hora da criação de um diretório. Note que o retorno de uma chamada a este método é um objeto da classe DateTime.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.IO;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // caminho e nome do diretíro
      string diretorio = @"C:\estudos_csharp\imagens";

      DateTime data = Directory.GetCreationTime(diretorio);
      Console.WriteLine("Diretório criado em: {0}", data);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Diretório criado em: 17/07/2022 22:09:12


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 62 usuários muito felizes estudando em nosso site.