none
Usando o evento MouseClick??? RRS feed

  • Pergunta

  • beleza pessoal? estou querendo fazer algumas coisas diferente no meu sistema, e queria usar mais o evento MouseClick, e queria ajuda em uma situação, eu preencho uma grid com um cadastro de clientes e preencho um arraylist com id corresponde a cada cliente correto??

    quando eu dou dois clicks na grid, eu abro a tela para editar o cadastro e pego o id da seguinte maneira:

    Code Snippet

    id = Convert.ToInt32(this.arrMeuArrayList[this.grid.CurrentRow.Index]

    assim eu pego o id do cliente que eu cliquei...

    agora eu quero clicar na grid com o botão direito e abrir um menuzinho igual quando clicamos em um lugar com o botão direito, mais não consigo pegar o id dessa forma, como posso fazer????

    eu fiz isso por enquanto


    Code Snippet

     private void grid_MouseClick(object sender, MouseEventArgs e)
    {
       if (e.Button == MouseButtons.Right)
       {

    preciso pegar o ID aqui, da linha que eu clicar 

       }

    }


    eu preciso pegar o id da linha que eu clicar com o botão direito, lembrando que quando eu clico com o botão direito eu não seleciono a linha, eu apenas clico...

    ps: existe algum componente que abre o menuzinho quando eu clico com o botão direito, ou eu crio um painel com os itens que eu quero e deixo visible true quando eu clico na linha????

    me ajudem por favor...
    terça-feira, 18 de março de 2008 19:08

Respostas

  • Olá Klayton, não recebi o seu email mais tudo bem, consegui a solução do problema, mto obrigado, vou deixar aqui pra quem precisar...valeu.



    Code Snippet

    private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)

    {

    dataGridView1.AccessibilityObject.HitTest(MousePosition.X, MousePosition.Y).Select(AccessibleSelection.TakeSelection);

    }




    segunda-feira, 24 de março de 2008 11:21

Todas as Respostas

  • O componente para fazer este menu do botao direito se chama ContextMenuStrip....

    vc pode criar vários...e aí no objetos na propriedade ContextMenuStrip vc liga o menu que vc quer q apareça para aquele objeto

     

    quarta-feira, 19 de março de 2008 12:45
  • Oi Ricardo, obrigado pela sua ajuda, eu linkei o ContextMenuStrip com minha grid, agora aparece o menu bonitinho, mais ainda não estou conseguindo pegar o valor da linha que eu clico, vc sabe como eu pego esse valor??

    estou pesquisando, se vc conseguir me ajudar valeu...
    quarta-feira, 19 de março de 2008 13:34
  • Guilherme

     

    ver bem fiz um exemplo aqui nao sei se é exatamente o que voce estar querendo mais ver ai se ajuda.

    eu peguei o index da primeira linha que estar selecionada.

     

     

    void dataGridView1_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)

    {

    if (e.Button == MouseButtons.Right)

    {

    int id = dataGridView1.SelectedRows[0].Index;

    }

    }

     

    quarta-feira, 19 de março de 2008 13:58
  • Olá Klayton, eu fiz isso tbm, ele funciona pq a linha com indice '0' já está selecionada, o problema é com as outras, eu queria uma forma de quando eu clicar com o botão direito eu marcar a linha, pq dai fica facil de trabalhar, mais não consigo selecionar a linha com o botão direito..mais mto obrigado pela sua ajuda. valeu
    quarta-feira, 19 de março de 2008 14:09
  • Detalhe guilherme

     

    quando voce utiliza o SelectedRows ele traz um array de linhas que estao selecionadas

     

    exemplo se voce selecionou a terceira, quarta e quinta linha do seu grid quando voce for ler sera

     

    int lprimeiraLinhaSelecionada = dataGridView1.SelectedRows[0].Index;

    int segundaLinhaSelecionada = dataGridView1.SelectedRows[1].Index;

    int terceiraLinhaSelecionada = dataGridView1.SelectedRows[3].Index;

     

    e assim sucessivamente entao o SelectedRows traz um array de linhas que estao selecionadas no seu grid view

     

    quarta-feira, 19 de março de 2008 14:57
  • eu entedi sim Klayton, o problema é que:

    quando eu abro a janela a grid já vem preenchida e com a primeira linha selecionada correto??? e quando eu vou clicar em outra linha com o botão direito a primeira linha ainda fica selecionada, eu queria que quando eu clicasse com o esquerdo ou direito a linha que eu clicar ficasse selecionada, pq dai eu posso pegar a linha selecionada pra trabalhar, ao inves de selecionar a linha com o esquerdo e depois clicar com o direito pra abrir o ContextMenuStrip...desse jeito que vc me explicou eu não consigo fazer....vc poderia me dar um exemplo ou tentar explicar de uma forma melhor??? eu compreendo o que vc disse, mais não consegui implementar.....

    mais obrigado mesmo.
    quarta-feira, 19 de março de 2008 17:14
  • Guilherme

     

    Me passa seu email que eu vou fazer um exemplo aqui dai passo para seu email e voce ver se esse exemplo lhe ajuda.

    blz.

     

    quarta-feira, 19 de março de 2008 19:20
  • Olá Klayton, não recebi o seu email mais tudo bem, consegui a solução do problema, mto obrigado, vou deixar aqui pra quem precisar...valeu.



    Code Snippet

    private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)

    {

    dataGridView1.AccessibilityObject.HitTest(MousePosition.X, MousePosition.Y).Select(AccessibleSelection.TakeSelection);

    }




    segunda-feira, 24 de março de 2008 11:21