Você está aqui: C# ::: Windows Forms ::: ComboBox

Usando DisplayMember e ValueMember nos itens de um ComboBox

Quantidade de visualizações: 16992 vezes
Muitas vezes queremos exibir strings nos itens de um ComboBox mas desejamos obter valores inteiros ao selecionarmos os itens. Por exemplo, o texto do ítem é "Delphi" mas seu valor é "47". Isso facilita muito a aproximação dos dados do ComboBox com os dados contidos nas tabelas do banco de dados.

O primeiro passo é criar a classe contendo os dados que desejamos exibir no ComboBox. Veja:

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

// classe que contém os dados a serem exibidos no ComboBox
public class Linguagem{
  private string nome;
  private int codigo;

  public Linguagem(string n, int c){
    this.nome = n;
    this.codigo = c;
  }

  public string nomeLinguagem{
    get{
      return nome;
    }
  }

  public int codigoLinguagem{
    get{
      return codigo;
    }
  }

  public override string ToString(){
    return this.nome + " - " + this.codigo;
  }
}

Veja que esta classe contém as variáveis de instância nome e código e as propriedades nomeLinguagem e codigoLinguagem. Observe agora o código contido 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 uma ArrayList de objetos da classe 
  // Linguagem
  ArrayList linguagens = new ArrayList();
  linguagens.Add(new Linguagem("Java", 23));
  linguagens.Add(new Linguagem("PHP", 24));
  linguagens.Add(new Linguagem("C#", 25));
  linguagens.Add(new Linguagem("Python", 26));

  // atribuimos o ArrayList como DataSource do ComboBox
  linguagensCombo.DataSource = linguagens;

  // o texto do item será o nome da linguagem
  linguagensCombo.DisplayMember = "nomeLinguagem";

  // o valor do item será o código da linguagem
  linguagensCombo.ValueMember = "codigoLinguagem";
}

Note que aqui nós criamos uma ArrayList e inserimos nela quatro objetos da classe Linguagem. Em seguida atribuímos a ArrayList à propriedade DataSource do ComboBox. Em seguida definimos a propriedade nomeLinguagem da classe Linguagem como valor para a propriedade DisplayMember do ComboBox. Isso faz com que o texto do ítem seja o nome da linguagem. Para finalizar nós definimos a propriedade codigoLinguagem da classe Linguagem como valor para a propriedade ValueMember do ComboBox. Isso faz com que o valor do ítem seja o código da linguagem.

Para verificar se o código funcionou como esperado, veja o evento Click de outro botão:

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

private void button2_Click(object sender, EventArgs e){
  // exibimos o valor do item selecionado
  MessageBox.Show("Valor do item selecionado: " +
    linguagensCombo.SelectedValue);
}


Link para compartilhar na Internet ou com seus amigos:

C# ::: Dicas & Truques ::: Mouse e Teclado

C# Windows Forms - Como tratar eventos do mouse em suas aplicações C# Windows Forms

Quantidade de visualizações: 16449 vezes
Aplicações de interface gráfica (GUI) em C# fazem uso extensivo do mouse e qualquer classe que herde de System.Windows.Forms.Control pode receber e tratar seus eventos. Os eventos do mouse mais comuns são pressionamento (click), liberação, movimento, etc. E cada um possui suas particularidades.

Sempre que um evento do mouse ocorre, as informações sobre tal evento são fornecidas ao método de tratamento de evento por meio de um objeto da classe MouseEventArgs (alguns eventos usam EventArgs) e o delegate usado para criar os gerenciadores de eventos do mouse é MouseEventHandler. Veja, por exemplo, o tratador de evento para o evento MouseClick de um Button:

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

private void button1_MouseClick(object sender, MouseEventArgs e){
  MessageBox.Show("Sou um Button e acabei de ser clicado!");
}

A classe MouseEventArgs é muito útil, pois é ela que nos permite obter informações sobre qual botão foi pressionado, as coordenadas x e y do evento, se um duplo-clique ocorreu, etc.

Veja um trecho de código no qual verificamos qual botão do mouse foi pressionado durante um evento MouseUp em um formulário:

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

private void Form1_MouseUp(object sender, MouseEventArgs e){
  if(e.Button == MouseButtons.Left){
    MessageBox.Show("Fui clicado com o botão esquerdo!");
  }
  else if(e.Button == MouseButtons.Right){
    MessageBox.Show("Fui clicado com o botão direito!");
  }
  else if (e.Button == MouseButtons.Middle){
    MessageBox.Show("Fui clicado com o botão do meio!");
  }
  else{
    MessageBox.Show("O que está acontecendo?");
  }
}

Veja os eventos do mouse que possuem um objeto da classe EventArgs:

a) MouseEnter - Ocorre quando o cursor do mouse entra na área de um controle.

b) MouseLeave - Ocorre quando o cursor do mouse deixa a área de um controle.

c) Click - Ocorre quando clicamos na área de um controle. Note que um click do mouse envolve pressionar e liberar o botão do mouse.

Veja os eventos do mouse que possuem um objeto da classe MouseEventArgs:

a) MouseDown - Ocorre quando o botão do mouse é pressionado dentro da área de um controle.

b) MouseHover - Ocorre quando o cursor do mouse pára sobre a área de um controle (sem clique, pressionamento ou movimento).

c) MouseMove - Ocorre quando movimentamos o mouse na área de um controle.

d) MouseUp - Ocorre quando o botão do mouse é liberado sobre a área de um controle.

e) MouseClick - Ocorre quando clicamos na área de um controle. Note que um click do mouse envolve pressionar e liberar o botão do mouse.

Há algumas diferenças significativas entre os eventos Click e MouseClick. Não deixe de consultar as outras dicas desta seção para aprofundar seus conhecimentos.


C# ::: Fundamentos da Linguagem ::: Variáveis e Constantes

C# para iniciantes: Como declarar e usar variáveis em C#

Quantidade de visualizações: 48095 vezes
Variáveis são apelidos que damos aos blocos de memória que podem ser usados para armazenar dados durante a execução de um programa. Podemos guardar informações dos mais variados tipos em variáveis, a saber: valores inteiros, valores de número flutuante (com casas decimais), palavras, frases, textos e até mesmo referências a objetos de classes (fornecidas pela linguagem C# ou nossas próprias).

Uma variável é declarada, em sua forma mais simples, informando o tipo de dados (int, float, double, string, etc) e então o nome da variável. Veja:

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

// uma variável usado para armazenar um valor inteiro
int valor;

Uma vez declarada a variável, podemos definir o valor que será armazenado inicialmente. Isso é chamado de "atribuir um valor inicial à variável". Veja:

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

static void Main(string[] args){
  // declara e inicializa uma variável do tipo double
  double salario = 2345.32;

  // exibe o valor da variável
  Console.WriteLine("Salário: {0}", salario);

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

É possível declarar mais de uma variável do mesmo tipo. Basta separá-las por vírgulas. Veja:

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

// declara três variáveis do tipo char
char a, b, c;

Variáveis são realmente úteis quando as estamos usando em cálculos ou outras operações importantes para o correto funcionamento do programa. Veja:

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

static void Main(string[] args){
  // declara três variáveis do tipo int
  int a, b, soma;

  // inicializa as duas primeiras variáveis
  a = 20;
  b = 10;

  // inicializa a terceira variável usando os valores
  // das duas anteriores
  soma = a + b;

  // exibe o resultado
  Console.WriteLine("Resultado: {0}", soma);

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

Para finalizar, lembre-se de uma variável C# possui atributos importantes e que devem ser lembrados com frequência durante o planejamento de suas aplicações. Alguns destes atributos são: tipo, nome, valor, posição na memória, escopo (global ou local) e visibilidade (pública ou privada).


C# ::: Coleções (Collections) ::: List<T>

Como usar a classe genérica List<T> do C# em suas aplicações

Quantidade de visualizações: 15587 vezes
A classe genérica List<T> da linguagem C# representa uma lista fortemente tipada de objetos que podem ser acessados por índices. Esta classe fornece métodos para pesquisar, ordenar e manipular seus elementos. Veja sua posição na hierarquia de classes da plataforma .NET:

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

System.Object
  System.Collections.Generic.List<T>
    System.ServiceModel.Install.Configuration.
  ServiceModelConfigurationSectionCollection
    System.ServiceModel.Install.Configuration.
  ServiceModelConfigurationSectionGroupCollection
    System.Workflow.ComponentModel.ActivityCollection
    System.Workflow.Activities.WorkflowRoleCollection
    System.Workflow.Activities.OperationParameterInfoCollection
    System.Workflow.ComponentModel.Design.
  ActivityDesignerGlyphCollection
    System.Workflow.Runtime.Tracking.ExtractCollection
    System.Workflow.Runtime.Tracking.TrackingAnnotationCollection
    System.Workflow.Runtime.Tracking.TrackingConditionCollection
    System.Workflow.Runtime.Tracking.ActivityTrackingLocationCollection
    System.Workflow.Runtime.Tracking.UserTrackingLocationCollection
    System.Workflow.Runtime.Tracking.ActivityTrackPointCollection
    System.Workflow.Runtime.Tracking.UserTrackPointCollection
    System.Workflow.Runtime.Tracking.WorkflowTrackPointCollection

Esta classe implementa também as interfaces IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection e IEnumerable.

A classe List<T> é a equivalente genérica da classe ArrayList. Ela implementa a interface genérica IList<T> usando um array (matriz) cujo tamanho é dinamicamente aumentado de acordo com a necessidade. Esta classe usa tanto um comparador de igualdade quanto um de ordenação.

Os métodos tais como Contains(), IndexOf(), LastIndexOf() e Remove() usam um comparador de igualdade para os elementos da lista. O comparador de igualdade padrão para o tipo T é definido segundo as seguintes regras: Se o tipo T implementar a interface genérica IEquatable<T>, então o comparador de igualdade é o método Equals(T) dessa interface. Caso contrário, o comparador de igualdade padrão é Object.Equals(Object).

Os métodos tais como BinarySearch() e Sort() usam um comparador de ordenação para os elementos da lista. O comparador padrão para o tipo T é definido da seguinte forma: Se o tipo T implementar a interface genérica IComparable<T>, então o comparador padrão é o método CompareTo(T) dessa interface. Caso contrário, se o tipo T implementar a interface não-genérica IComparable, então o comparador padrão é o método CompareTo(Object) dessa interface. Se o tipo T não implementar nenhuma destas duas interfaces, então não haverá comparador padrão, e um comparador ou delegate de comparação deve ser fornecido explicitamente.

Uma lista List<T> não fornece garantias quanto à sua ordenação. Devemos ordená-la por conta própria antes de efetuar algumas operações (tais como BinarySearch) que exigem que a List<T> esteja ordenada. Os elementos em uma coleção do tipo List<T> podem ser acessados usando índices (que começam a partir de 0). Uma List<T> aceita o valor null como valor válido para tipos referência e aceita elementos duplicados.

Em relação à performance, a documentação do .NET afirma que, embora List<T> e ArrayList possuam funcionalidade semelhante, a classe List<T> possui uma performance melhor na maioria dos casos, além de ser type safe (oferece segurança de tipos).

Veja um trecho de código no qual criamos uma List<T> de inteiros, inserimos alguns valores e usamos o laço foreach para percorrer a lista e exibir os valores dos elementos:

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

static void Main(string[] args){
  // vamos criar um objeto da classe List<T>
  List<int> valores = new List<int>();

  // vamos inserir três valores na lista
  valores.Add(5);
  valores.Add(2);
  valores.Add(9);

  // vamos usar o laço foreach para percorrer os elementos
  // na lista
  foreach(int v in valores){
    Console.WriteLine(v);    
  }

  // vamos pausar a execução
  Console.ReadKey();
}



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á 80 usuários muito felizes estudando em nosso site.