Você está aqui: C# ::: Windows Forms ::: DataGridView |
Como retornar a linha da célula selecionada em um DataGridView do C# Windows FormsQuantidade de visualizações: 23358 vezes |
Muitas vezes precisamos obter a linha atual de uma determinada célula selecionada no DataGridView. Isso pode ser feito por meio da propriedade CurrentRow. Esta propriedade retorna um objeto da classe DataGridViewRow, que representa uma linha no DataGridView. Podemos usar esta classe para obter o índice da linha que contém a célula selecionada, percorrer todas as células de uma determinada linha, etc. Veja um trecho de código no qual usamos a propriedade CurrentRow para obter o DataGridViewRow representando a linha da célula selecionada: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button3_Click(object sender, EventArgs e){ // vamos obter a linha da célula selecionada DataGridViewRow linhaAtual = dataGridView1.CurrentRow; // vamos exibir o índice da linha atual int indice = linhaAtual.Index; MessageBox.Show("O índice da linha atual é: " + indice); } |
![]() |
C# ::: Dicas & Truques ::: Tipos de Dados |
Como usar o tipo bool da linguagem C# - Apostila C# para iniciantesQuantidade de visualizações: 17589 vezes |
O tipo bool do C# é um apelido para o tipo System.Boolean do .NET e pode representar apenas dois valores: True ou False. Este tipo é usado em expressões condicionais e, quando os valores True e False estiverem sendo usados como literais, estes deverão ser escritos como "true" e "false". Veja:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- bool pode = true; bool vencido = false; Se escrevermos "True" e "False", teremos erros de compilação: The name 'True' does not exist in the current context The name 'False' does not exist in the current context No entanto, se imprimirmos o valor de uma variável do tipo boolean usando Console.WriteLine(), teremos os valores "True" e "False". Experimente: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- bool pode = true; Console.WriteLine(pode); Para saber a quantidade de bytes que um tipo bool ocupa, podemos usar o método sizeof(). Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Console.WriteLine("Um boolean ocupa " + sizeof(bool) + " bytes no C# 2.0"); Este código exibirá: Um boolean ocupa 1 bytes no C# 2.0 Em C++, um valor de tipo bool pode ser convertido para um valor do tipo int, ou seja, false é equivalente à zero e true é equivalente à um valor diferente de zero. Em C# isso não é possível. Veja o que acontece quando tentamos converter um tipo int para um tipo boolean: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- int pode = 1; if(pode) Console.WriteLine("OK"); A mensagem de erro de compilação é: Cannot implicitly convert type 'int' to 'bool' |
C# ::: Dicas & Truques ::: Data e Hora |
Como adicionar ou subtrair meses de uma data em C# usando a função AddMonths() da classe DateTimeQuantidade de visualizações: 12145 vezes |
Em algumas situações nossos códigos precisam adicionar ou subtrair meses de uma data. Isso pode ser feito com o auxílio do método AddMonths() da estrutura DateTime. Este método recebe o número de meses a serem acrescidos ou substraídos da data representada pelo DateTime atual e retorna um novo DateTime com as devidas modificações. Veja um trecho de código no qual adicionamos 3 meses à data atual: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos adicionar 3 meses à data de hoje DateTime data_futura = hoje.AddMonths(3); // exibe a data daqui a três meses System.Console.WriteLine("Daqui a 3 meses será {0:d}", data_futura); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } É possível também subtrair meses. Para isso só precisamos fornecer um valor negativo para o método AddMonths(). Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- static void Main(string[] args){ // vamos obter a data de hoje DateTime hoje = DateTime.Now; // exibe a data de hoje System.Console.WriteLine("Hoje é {0:d}", hoje); // vamos subtrair 5 meses da data de hoje DateTime data_passado = hoje.AddMonths(-5); // exibe a data 5 meses atrás System.Console.WriteLine("Há 5 meses era {0:d}", data_passado); // pausa o programa System.Console.Write("\nPressione qualquer tecla para sair..."); Console.ReadKey(); } Lembre-se, contudo, que o método AddMonths() pode disparar uma exceção do tipo ArgumentOutOfRangeException se o DateTime resultante for menor que MinValue ou maior que MaxValue. MinValue e MaxValue são os menor e maior valores que um DateTime pode representar. Esta exceção também será disparada se o valor fornecido para o mês for menor que -120.000 ou maior que 120.000. |
C# ::: Windows Forms ::: DataGridView |
Como usar o controle DataGridView do C# Windows FormsQuantidade de visualizações: 18909 vezes |
A classe DataGridView permite a exibição de dados em formato tabular, ou seja, linhas e colunas de informação. Esta classe substitui a classe DataGrid, presente no Windows Forms 1.0, com a adição de novas funcionalidades. Veja sua posição na hierarquia de classes da plataforma .NET:System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.DataGridView É possível usar um controle DataGridView para exibir dados com ou sem uma fonte de dados (data source). Sem a fonte de dados, podemos criar linhas e colunas que contém dados e adicioná-las diretamente ao DataGridView. Alternativamente, podemos definir valores para as propriedades DataSource e DataMember. Isso liga o DataGridView a uma fonte de dados e automaticamente já preenche suas linhas e colunas com os dados desejados. O processo de incluir um DataGridView em seus formulários é muito simples. Basta localizar no Toolbox a seção Data. Clique no componente DataGridView e arraste-o para a posição desejada no formulário. Imediatamente você será perguntado se deseja informar a fonte de dados para o controle. Veja um trecho de código no qual adicionamos três colunas e três linhas (com conteúdo) em um DataGridView sem fonte de dados: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- private void button2_Click(object sender, EventArgs e){ // vamos adicionar três colunas no DataGridView dataGridView1.Columns.Add("cidade", "Cidade"); dataGridView1.Columns.Add("estado", "Estado"); dataGridView1.Columns.Add("populacao", "População"); // vamos adicionar três linhas dataGridView1.Rows.Add("Goiânia", "GO", "3.453,39"); dataGridView1.Rows.Add("Cuiabá", "MT", "1.876,12"); dataGridView1.Rows.Add("Curitiba", "PR", "5.346,98"); } |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como remover espaços em branco no início e final de uma string C# usando o método Trim() da classe StringQuantidade de visualizações: 13771 vezes |
Nesta dica mostrarei como podemos usar a função Trim() da classe String da linguagem C# para remover os espaços no início e no fim de uma palavra, frase ou texto. Esta técnica é muito útil quando estamos trabalhando com dados informados pelos usuários de nossas aplicações. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; namespace Estudos { class Program { static void Main(string[] args) { string texto = " temos espaços no início e fim "; Console.WriteLine(texto); // remove os espaços no início e fim da string texto = texto.Trim(); Console.WriteLine("." + texto + "."); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- temos espaços no início e fim .temos espaços no início e fim. |
C# ::: Windows Forms ::: TextBox |
Como contar as palavras em um TextBox de múltiplas linhas do C# Windows FormsQuantidade de visualizações: 13911 vezes |
Em algumas situações nós precisamos retornar a quantidade de palavras digitadas em um campo TextBox de múltiplas linhas do C# Windows Forms. O trecho de código abaixo mostra como isso pode ser feito. Note como usei os métodos da classe String para alcançar o objetivo. Veja o código C# completo disparado a partir do clique de um botão Button: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- /* Este exemplo mostra como obter a quantidade de palavras em um TextBox. Veja que usamos a técnica de contar as palavras contidas em um array após retirar as quebras de linhas e espaços duplicados na string. */ private void button1_Click(object sender, EventArgs e){ // Obtém o texto da caixa de texto string texto = textBox1.Text.Trim(); // Remove as quebras de linhas substituindo-as por // espaços texto = texto.Replace(Environment.NewLine, " "); // remove os espaços em excesso while(texto.IndexOf(" ") >= 0){ texto = texto.Replace(" ", " "); } // Obtém um array de palavras string[] palavras = texto.Split(" "); // Obtém a quantidade de palavras int quant = palavras.Length; // Exibe o resultado MessageBox.Show("O TextBox contém " + quant + " palavras."); } |
C# ::: Dicas & Truques ::: Data e Hora |
Como obter a quantidade de dias em um determinado mês usando o método GetDaysInMonth() da classe GregorianCalendar do C#Quantidade de visualizações: 12131 vezes |
Em algumas situações precisamos saber quantos dias há em um determinado mês. Para isso podemos usar o método GetDaysInMonth() da classe Calendar (ou alguma de suas subclasses). Este método recebe dois valores inteiros: o ano e o mês desejado. Na classe GregorianCalendar (que extende Calendar) o método GetDaysInMonth() retorna 28 para os anos comuns e 29 para os anos bissextos. Veja um trecho de código no qual usamos o método GetDaysInMonth() para obter a quantidade de dias para o mês de Março de 2009: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- static void Main(string[] args){ // using System.Globalization; // obtém uma instância da classe GregorianCalendar Calendar c = new GregorianCalendar(); // obtém a quantidade de dias para março de 2009 int dias = c.GetDaysInMonth(2009, 3); // exibe o resultado Console.WriteLine("Este mês possui {0} dias", dias); // pausa o programa Console.ReadKey(); } Note, contudo, que o mesmo resultado pode ser obtido por meio do calendário padrão independente de cultura, desde que as regiões as quais o programa se destina tenham compatibilidade de calendários: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Calendar c = CultureInfo.InvariantCulture.Calendar; O método GetDaysInMonth() pode atirar uma exceção do tipo ArgumentOutOfRangeException se os valores do ano ou mês estiverem fora das faixas permitidas pelo calendário. Veja: System.ArgumentOutOfRangeException was unhandled Message="Month must be between one and twelve. Parameter name: month" Source="mscorlib" ParamName="month" |
C# ::: LINQ ::: LINQ to Objects |
Como retornar o maior elemento em um array de int em C# usando a função Max() do LINQQuantidade de visualizações: 1024 vezes |
Nesta dica mostrarei, em um exemplo bem simples, como podemos usar o método Max() do LINQ (Language-Integrated Query) do C# para retornar o maior elemento de um vetor de inteiros. Note que temos um vetor de int com os valores {5, 2, 8, 3, 0, 1} e o valor 8 deverá ser retornado como sendo o maior. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; using System.Linq; namespace Estudos { class Principal { static void Main(string[] args) { // vamos construir um vetor de inteiros int[] valores = {5, 2, 8, 3, 0, 1}; // vamos obter o maior elemento do vetor int maior = valores.Max(); // vamos mostrar o resultado Console.WriteLine("O maior valor é: {0}", maior); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: O maior valor é: 8 Fique atento ao fato de que o método Max() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas. Veja o resultado ao chamarmos este método em um vetor vazio: System.InvalidOperationException HResult=0x80131509 Message=Sequence contains no elements Source=System.Linq StackTrace: at System.Linq.ThrowHelper.ThrowNoElementsException() at System.Linq.Enumerable.Max(IEnumerable`1 source) at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11 |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C# - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em C#Quantidade de visualizações: 350 vezes |
Pergunta/Tarefa: Escreva um programa C# que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado: // declara, constrói e inicializa um vetor de 10 inteiros int[] valores = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}; Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando C#: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- using System; namespace Estudos { class Principal { // função principal do programa C# static void Main(string[] args) { // declara, constrói e inicializa um vetor de 10 inteiros int[] valores = { 4, 21, 9, 8, 12, 21, 4, 4, 1, 10 }; // vamos ler um valor inteiro Console.Write("Informe um valor: "); int pesquisa = Int32.Parse(Console.ReadLine()); // vamos verificar quantas vezes o valor informado está // contido no vetor int repeticoes = 0; for (int i = 0; i < valores.Length; i++) { if (valores[i] == pesquisa) { repeticoes++; // encontrou? vamos contar esta ocorrência } } // vamos mostrar o resultado Console.WriteLine("O valor foi encontrado: " + repeticoes + " vezes"); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
Mais Desafios de Programação e 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 |