Pular para o conteúdo principal

Tratando o Clique em Células do DataGridView com o Evento CellMouseDown

Formulário

Apesar do avanço de tecnologias mais modernas, como aplicações web e frameworks multiplataforma, o Windows Forms ainda possui grande relevância no desenvolvimento de sistemas corporativos, principalmente em ambientes internos (intranets), onde a rapidez no desenvolvimento e a integração com o Windows são diferenciais importantes. Um dos componentes mais utilizados nessa tecnologia é o DataGridView, que permite a exibição e manipulação de dados em forma de tabela de forma eficiente e interativa. Sua versatilidade o torna ideal para a criação de interfaces ricas e funcionais, como consultas, edições em massa e visualização de grandes volumes de dados.

Em determinadas situações, é necessário executar uma ação quando o usuário clica em uma célula do DataGridView. Para esse tipo de tratamento, uma das abordagens mais comuns é utilizar o evento CellMouseDown.

Neste artigo, veremos um exemplo simples de como utilizar esse evento para exibir o conteúdo da célula clicada.

Exemplo Prático

Vamos utilizar um formulário básico, criado apenas para demonstração. Código fonte https://github.com/dancorrea86/FormularioExemplo.

Estrutura do Formulário


using System.Collections.Generic;
using System.Windows.Forms;

namespace ExemploFormulario
{
    public partial class FormExemplo : Form
    {
        public FormExemplo()
        {
            InitializeComponent();
        }

        private void FormExemplo_Load(object sender, System.EventArgs e)
        {
            List<Exemplo> dados = new List<Exemplo>
            {
				dados.Add(new Exemplo { Id = 1, Nome = "Alice", Idade = 30 });
				dados.Add(new Exemplo { Id = 2, Nome = "Bruno", Idade = 25 });
				dados.Add(new Exemplo { Id = 3, Nome = "Carla", Idade = 28 });
            };

            dtvExemplo.DataSource = dados;
        }
    }

    public class Exemplo
    {
        public int Id { get; set; }
        public string Nome { get; set; }
        public int Idade { get; set; }
    }
}

Neste trecho, definimos uma classe Exemplo que representa os dados exibidos na grade. Na carga do formulário (FormExemplo_Load), instanciamos uma lista de objetos e a atribuimos como DataSource do DataGridView.

Tratando o Evento CellMouseDown

Agora, vamos adicionar o tratamento do clique com o botão esquerdo do mouse nas células do DataGridView.

Registro do Evento

No construtor do formulário ou via designer, registramos o evento:

Design Formulário
this.dtvExemplo.CellMouseDown += this.DtvExemplo_CellMouseDown;

Implementação do Handler

private void DtvExemplo_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
	if (e.RowIndex < 0 || e.ColumnIndex < 0)
	{
		// Ignora cliques no cabeçalho ou fora das células
		return;
	}

	if (e.Button == MouseButtons.Left)
	{
		var valorCelula = dtvExemplo[e.ColumnIndex, e.RowIndex].Value;
		MessageBox.Show(valorCelula?.ToString(), "Conteúdo da Célula", MessageBoxButtons.OK, MessageBoxIcon.Information);
	}
}

Pontos Importantes

Validação de índices

if (e.RowIndex < 0 || e.ColumnIndex < 0)
{
	return;
}

Antes de acessar os dados, é importante verificar se o clique ocorreu dentro dos limites válidos da grade.

Verificação do botão do mouse

if (e.Button == MouseButtons.Left)
{
	// Ação desejada
}

Podemos tratar apenas cliques com o botão esquerdo, direito ou ambos, conforme a necessidade. No exemplo, focamos no botão esquerdo.

Conclusão

O evento CellMouseDown é útil para capturar interações do usuário com células específicas do DataGridView, sendo ideal para contextos onde é necessário realizar ações baseadas no conteúdo ou posição da célula clicada. Com os cuidados demonstrados neste exemplo, é possível aplicar esse recurso de forma segura e eficaz. Essa é uma demonstração básica e existem outros pontos para adicionar como por exemplo o trataamento de erros. Qualquer dúvida estou à disposição nos comentários. O projeto de exemplo está no repositório.

Referência

Comentários

Postagens mais visitadas deste blog

Gerenciando Dependências no Python com requirements.txt

O que é o Pip? O Pip  (Package Installer for Python) é o gerenciador de pacotes do Python. Ele permite instalar, atualizar e remover bibliotecas e dependências de forma prática, garantindo que seu ambiente esteja sempre configurado corretamente. Como gerar um arquivo requirements.txt? Quando trabalhamos em projetos Python, muitas vezes precisamos garantir que todas as dependências necessárias estejam instaladas. Para facilitar essa gestão, podemos gerar um arquivo requirements.txt que contém a lista de pacotes e versões utilizadas no ambiente. Para gerar esse arquivo, execute o seguinte comando no terminal: pip freeze > requirements.txt Esse comando captura todas as bibliotecas instaladas no ambiente e as salva no arquivo requirements.txt . Geralmente trabalhamos com um ambiente virtual, o que é uma boa prática. Como instalar dependências a partir do requirements.txt? Se você precisa configurar um novo ambiente ou compar...

Aprenda Pandas utilizando exemplos de SQL e vice e versa (select, insert, update e delete)

O que é o Pandas? O Pandas é uma biblioteca open source do Python, criada para a função de análise de dados. Suas funções incluem limpeza, tratamento e análise exploratória de dados (EDA). É uma biblioteca muito utilizada para o trabalho de Machine Learning e Data Science, porém sua utilidade vai muito além disso, sendo uma ferramenta poderosa para programadores ou profissionais que lidam com grandes conjuntos de dados. Eu utilizo muito o Pandas para conferência de relatórios e bases de dados, e considero uma ferramenta muito útil, por exemplo, para profissionais de finanças, contabilidade, etc. Funcionamento do Pandas O funcionamento do Pandas está centrado em DataFrames, que são objetos para estruturar dados, algo parecido com uma planilha. Os dados são importados para um DataFrame, e as fontes de dados pode ser de diversos tipos, por exemplo: Excel Json SQL HTML Google Sheets A liberdade que o P...

Como Vencer a Procrastinação e Estudar Tecnologia com Foco (Serve Para Qualquer Tema!)

Como Vencer a Procrastinação e Estudar Tecnologia com Foco O tópico sobre estudar de forma eficiente sempre foi um interesse meu. Trabalhando na área de tecnologia essa necessidade aumentou, pois a área está em constante mudança e precisamos nos manter atualizados. A inspiração para escrever um artigo sobre esse tema veio de uma leitura recente, o livro Ultra-aprendizado , do autor Scott Young. O tema do livro é sobre como estudar de forma eficiente, no capítulo 5 o autor mostra estratégias para resolver problemas comuns durante uma sessão de estudos e um dos problemas tratados é a procrastinação. Durante a leitura deste livro eu fiz várias correlações com outro livro que li, o livro Hábitos Atômicos , do autor James Clear. A intenção deste artigo não é taxar pessoas como preguiçosas. No mundo em que vivemos a quantidade de tempo disponível para o lazer e estudo não é igual para todos os indivíduos, algumas pessoas simplesmente não têm tempo para dedicar aos estudos. Este artig...