Dev (Back & Front)ARTIGO

Adicionando menu no DataGridView

Olá, pessoal! Veremos hoje como adicionar um menu dentro do DataGridview, ou seja, dentro do grid, ao clicar com o botão
direito, as opções adicionadas aparecerão.

Requisitos:

  • Linguagem
    C#.NET
  • Ferramenta de
    desenvolvimento Visual Studio.NET 2008
  • Framework 3.5
  • Componente
    utilizado: DataGridView e ContextMenuStrip

Resultado final

Segue o resultado final da nossa proposta:

Imagem 1

O exemplo é bem tranqüilo,
pois o que precisa ser feito é clicar com o botão direito em cima da grid
preenchida para aparecer o menu com as opções. Lembrando que não vou mostrar
como preencher o grid passo a passo, creio que você já sabe fazer isso.

Na prática

O primeiro passo é escolher no Toolbox o componente DataGridView e
colocar no formulário .cs gerado:

Imagem 2

Depois de colocar o componente no form,
preenchi o mesmo com os dados vindos do banco de dados. (Code 1)

DataTable dt = _passadaBRL.BuscaDocumentosPassadaMonitoracao(dataMovimento,<br />  poloId, poloCapturaId);<br />this.gvPassada.DataSource = dt;

Code 1

Os dados foram preenchidos com o DataTable retornado. Adicionei ele ao
DataSource do meu grid chamado gvPassada.
Você pode colocar qualquer nome no componente; vai de acordo com o gosto. Porém
eu dou uma dica para quem quer saber como colocar nomes nos objetos de tela,
veja o link com os padrões. http://www.aspneti.com/Padroes+de+nomenclaturas+261,0.aspx

Existe outro componente importante que
vou utilizar, chamado ContexMenuStrip.
Acessei o Toolbox e adicionei o
componente ao mesmo formulário do grid (Imagem 3).

Imagem 3

Deixei o objeto com o mesmo. Existem
duas propriedades importantes que mostro logo abaixo (Imagem 4):

Imagem 4

Propriedades

  • RenderMode: Mudar a aparência de como
    vai aparecer no formulário. Existem as opções System, Professional e Manager
    Render Mode.
  • Items: É onde coloco o submenu ou mais de
    um para aparecer.

O próximo passo é colocar essa coleção
de itens para aparecer no formulário. Cliquei no botão (…) ao lado do item e
aparecer a imagem 5.

Imagem 5

Logo no topo da tela existem algumas
opções para serem adicionadas. Escolhi o MenuItem
e coloquei na propriedade Text o nome
(Carregar Imagens Digit…), pode
colocar qualquer texto, é o que vai aparecer ao usuário final depois de clicar
com o botão direito.

Na propriedade Name, coloquei um nome para cada um, esse foi mnuCarregar, na outra, mnuCancelar.

O menu ficou em cima do formulário
(Imagem 6):

Imagem 6

Agora, posso clicar duas vezes em cima
do nome e automaticamente o Visual Studio cria um método para fazer o que for
preciso. Para pegar o documento específico selecionado, fiz dessa maneira:

DataRowView dtRowView = gvPassada.SelectedRows[0].DataBoundItem as DataRowView;<br />DataRow dtRow = dtRowView.Row;

Code 2

Vínculo entre os dois componentes

O vínculo entre os dois componentes é
feito dentro das propriedades do GridView. A propriedade responsável é a ContextMenuStrip, ao clicar nas opções
já aparece o nome do objeto (Imagem 7):

Imagem 7

O resultado final do projeto é ter um
clique com o botão direito em cima de um objeto, assim:

Imagem 8

Espero que tenha
gostado. Qualquer dúvida pode entrar em contato!

Com mais de 20 anos trabalhando no mercado de tecnologia. Mestre em Engenharia Elétrica voltada para o mundo mobile, com mais de 20 livros publicados e cerca de 700 artigos publicados com intuito de ajudar àqueles que querem aprender a programar (site, software, desktop, serviços, api e mobile). Site pessoal: https://www.mauriciojunior.net - MVP, MCAD, MCP Microsoft

Ver perfil