Ir para conteúdo
Fórum Script Brasil
  • 0

Como Saber Qual O Botao Clicado Da Toolbar?


kuroi

Pergunta

o cara clica num botao da toolbar e chama a seguinte funcao:

    Private Sub tlbTB_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles tlbTB.ButtonClick
    End Sub[/code]

sei que o e guarda o botao que foi clicado. mas o e não tem a propriedade nome!! como faco pra saber exatamente qual o botao que foi clicado?

pensei em ver pelo ImageIndex, mas nada impede que eu tenha dois botoes com a mesmo imagem.

pelo text também não da, posso ter dois botoes com o mesmo texto (alias, nenhum botao meu tem Text preenchido).

pelo tooltiptext e tag, a msma coisa.

como saber então??

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

é o studio 2003 aqui... e aqui não tem o componente ToolStrip, acredito que esse controle tenha aparecido no 2005 pra substituir a ToolBar (que é o que estou usando), então deve ser diferente. tenho o 2005 em casa e quando chegar do uma olhada, mas acho que não vai resolver aqui...

no 2003, no click do botao ele chama essa sub que eu passei.

    Private Sub tlbTB_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles tlbTB.ButtonClick
    End Sub[/code]

no sender ele passa a propria toolbar e no e ele passa esse ToolBarButtonClickEventArgs. ele vem com uma propriedade chamada button, que traz todos os dados do botao. como imageindex, text, etc. já testei e ele passa o botao clicado certinho. so que por algum motivo muito estranho, o e.Button não tem a propriedade Name. assim eu não tenho um identificador pra saber qual o botao que foi clicado.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, existem boas maneiras de se fazer isso, ums por exemplo, é essa daqui:

        Select Case e.Button.ToolTipText
            Case "Abre uma Mensagem"
        Msgbox("Oi")
            Case "Fecha uma Mensagem"
        Msgbox("Tchau")

Você pode mudar esse método de acordo com a propriedade depois do Button, tem bastante lá, e acho que tem o que você quer.

Falows!

Link para o comentário
Compartilhar em outros sites

  • 0

porque eu uso o 2005 e nele, quando você adciona a tollStrip, e adciona um botao, basta você dar dois cliques nele pra fazer as funções do click ...

nossa, essa toolstrip do 2005 é bem melhor mesmo. mas como no trampo tenho que usar o 2003, vo ter que me virar.

Bom, existem boas maneiras de se fazer isso, ums por exemplo, é essa daqui:

        Select Case e.Button.ToolTipText
            Case "Abre uma Mensagem"
        Msgbox("Oi")
            Case "Fecha uma Mensagem"
        Msgbox("Tchau")[/code]

Você pode mudar esse método de acordo com a propriedade depois do Button, tem bastante lá, e acho que tem o que você quer.

Falows!

então, eu já tinha pensado nisso. mas por exemplo, eu posso preencher dois botoes como o mesmo texto na propriedade tooltiptext, entende?? está, isso seria uma coisa meio besta de se fazer, mas imagina que eu não quisesse que nenhum dos meus botoes tivessem tooltiptext. nesse caso a propriedade ficaria igual pra todos...

no meu caso, hj, isso que você passou resolve... alias, ficaria melhor se eu preenchesse a propriedade tag em vez da ttt... mas dependendo, em otro projeto, talvez eu não pudesse por uma propriedade diferente pra cada um...

ai eu tava querendo saber se tem um jeito automatico de identificar qual foi o botao clicado... que seria o mais normal... so pra dexar o codigo bunitinho e certinho, está ligado... porque preenchendo a tag, fica meio que uma gambiarra... mas parece que é o unico jeito... estranho não poder acessa a propriedade name...

Link para o comentário
Compartilhar em outros sites

  • 0
então, eu já tinha pensado nisso. mas por exemplo, eu posso preencher dois botoes como o mesmo texto na propriedade tooltiptext, entende?? está, isso seria uma coisa meio besta de se fazer, mas imagina que eu não quisesse que nenhum dos meus botoes tivessem tooltiptext. nesse caso a propriedade ficaria igual pra todos...

Certo, entendi.

i eu tava querendo saber se tem um jeito automatico de identificar qual foi o botao clicado...

Bem, você citou que gostaria de ter o nome do botão, mais eu realmente não consegui pegá-lo, realmente muito estranho. Observe essa linha:

e.Button.Parent.Buttons

Observe que, nenhuma refêrencia de Buttons condiz ao nome de algum, como você disse, realmente é muito estranho. Ou realmente não tem esta condição, ou a gente não tá sabendo buscá-la. E se, você olhar via propriedade nas coleções dos botões, vai ver o nome na categoria Design, que no caso, tambem não consegui acessar aqui. Mas uma das opções, fora o ToolTipText, seria a propriedade "Text" do botão. E caso, você não escreva nada, basta escolher a propriedade "ImageIndex" do botão, que tambem pode lhe ser útil.

Não consegui a solução que você queria, mais o compilador te fornece outras soluções, e eu postei mais duas delas aqui, espero que elas te ajudem futuramente.

Falows!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Natan Pedro
usa a propriedade TAG do botão da toolbar

Cara Usa assim:

Select Case Button.Index

Case 1

'Exportar para Microsoft Excel

Case 2

'Consultar

Case 3

...

end select

coloque isso no evento onclick da toolbar

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...