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!








