A dica de ferramenta é realmente um controle WinForms que lida com a exibição de dicas de ferramentas para vários elementos em um único formulário.
Digamos que seu botão se chame MyButton.
Adicione um controle de dica de ferramenta (em controles comuns na caixa de ferramentas do Windows Forms) ao seu formulário.
Dê um nome a ele - diga MyToolTip
Defina a propriedade "Dica de ferramenta no MyToolTip" do MyButton (em Misc na grade de propriedades do botão) como o texto que deve aparecer quando você passar o mouse sobre ele.
A dica aparecerá automaticamente quando o cursor passar sobre o botão, mas se você precisar exibi-la programaticamente, chame
MyToolTip.Show("Tooltip text goes here",MyButton)
no seu código para mostrar a dica de ferramenta e MyToolTip.Hide (MyButton) para fazê-la desaparecer novamente.
legal, mas uma pergunta: se eu tiver mais de um botão em um formulário, preciso de mais dicas ou posso definir várias descrições e botões para a mesma dica?
precisa saber é o seguinte
8
Sua forma só precisa de um único controle ToolTip - cada botão pode ter diferentes texto de ajuda (é por isso que o "Dica em MyToolTip" é uma propriedade do controle associado, não do próprio controle dica de ferramenta)
Dylan Beattie
2
No caso mais simples, adicionar a dica de ferramenta ao formulário é a melhor coisa a fazer. Problema: no tempo de design de um Controle personalizado, você não faz referência ao Formulário pai. Solução: crie um objeto de dica de ferramenta no controle. Não pense no objeto Dica de ferramenta como necessariamente anexado ao formulário.
Stéphane Gourichon
93
Usando o designer de formulários:
Arraste o controle ToolTip da caixa de ferramentas para o formulário.
Selecione as propriedades do controle em que você deseja que a dica de ferramenta apareça.
Localize a propriedade 'ToolTip on toolTip1' (o nome pode não ser toolTip1 se você alterou o nome padrão).
Defina o texto da propriedade como o texto da dica de ferramenta que você deseja exibir.
Você também pode definir a dica de ferramenta programaticamente usando a seguinte chamada:
Uma dica de ferramenta personalizada também pode ser usada caso a formatação seja necessária para a mensagem da dica de ferramenta. Isso pode ser criado pela formatação personalizada do formulário e usá-lo como caixa de diálogo de dica de ferramenta no evento de foco do mouse do controle. Verifique o link a seguir para mais detalhes -
Texto de armazenamento lento e compacto na propriedade Tag
Se você estiver um pouco preguiçoso e não usar a propriedade Tag dos controles para mais nada, use-a para armazenar o texto da dica de ferramenta e atribuir manipuladores de eventos MouseHover a todos esses controles de uma só vez, como segue:
Nesse caso, todos os botões com uma sequência na propriedade Tag recebem um evento MouseHover . Para mantê-lo compacto, o evento MouseHover é definido em linha usando uma expressão lambda. No caso de qualquer botão passar o mouse, o texto da tag será atribuído à dica de ferramenta e mostrado.
A estrutura .NET fornece uma classe ToolTip. Adicione um desses ao seu formulário e, em seguida, no evento MouseHover para cada item para o qual você deseja uma dica de ferramenta, faça algo como o seguinte:
Embora esse trecho de código possa resolver a questão, incluir uma explicação realmente ajuda a melhorar a qualidade da sua postagem. Lembre-se de que você está respondendo à pergunta dos leitores no futuro e essas pessoas podem não saber os motivos da sua sugestão de código.
Claro, basta manipular o evento de passagem do mouse e pedir para exibir uma dica de ferramenta. t é uma dica de ferramenta definida nas globais ou no construtor usando:
Acho que você foi rejeitado porque não é assim que os controles de dica de ferramenta são usados no Windows Forms. Você só precisa de um desses controles no formulário e mostra as dicas para todos os controles. Veja o código nas outras respostas.
Julian Melville
1
Eu acho que a explicação não corresponde ao código, onde na explicação eu disse para exibi-lo e no código eu o inicializei também. Foi mal. : P
Fry
2
@ julianz Na verdade, isso funciona bem por ter dicas de ferramentas especializadas que podem ser dinâmicas se você quiser, dependendo do estado (menos a criação - é claro, perdoe-me, eu estava apenas tentando encaixar tudo em um único bloco.) veia semelhante ... yshuditelu e Dylan Beattie eram semelhantes, embora sem a instanciação.
Respostas:
A dica de ferramenta é realmente um controle WinForms que lida com a exibição de dicas de ferramentas para vários elementos em um único formulário.
Digamos que seu botão se chame MyButton.
A dica aparecerá automaticamente quando o cursor passar sobre o botão, mas se você precisar exibi-la programaticamente, chame
no seu código para mostrar a dica de ferramenta e MyToolTip.Hide (MyButton) para fazê-la desaparecer novamente.
fonte
Usando o designer de formulários:
Você também pode definir a dica de ferramenta programaticamente usando a seguinte chamada:
fonte
Você pode usar a classe ToolTip:
Criando uma dica de ferramenta para um controle
Exemplo:
fonte
new ToolTip().SetToolTip(this.Button1, "Hello");
Para a dica de ferramenta padrão, isso pode ser usado -
Uma dica de ferramenta personalizada também pode ser usada caso a formatação seja necessária para a mensagem da dica de ferramenta. Isso pode ser criado pela formatação personalizada do formulário e usá-lo como caixa de diálogo de dica de ferramenta no evento de foco do mouse do controle. Verifique o link a seguir para mais detalhes -
http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html
fonte
Texto de armazenamento lento e compacto na propriedade Tag
Se você estiver um pouco preguiçoso e não usar a propriedade Tag dos controles para mais nada, use-a para armazenar o texto da dica de ferramenta e atribuir manipuladores de eventos MouseHover a todos esses controles de uma só vez, como segue:
Nesse caso, todos os botões com uma sequência na propriedade Tag recebem um evento MouseHover . Para mantê-lo compacto, o evento MouseHover é definido em linha usando uma expressão lambda. No caso de qualquer botão passar o mouse, o texto da tag será atribuído à dica de ferramenta e mostrado.
fonte
A estrutura .NET fornece uma classe ToolTip. Adicione um desses ao seu formulário e, em seguida, no evento MouseHover para cada item para o qual você deseja uma dica de ferramenta, faça algo como o seguinte:
fonte
fonte
Com base na resposta de DaveK , criei uma extensão de controle:
Em seguida, você pode definir a dica de ferramenta para qualquer controle com uma única linha:
fonte
Claro, basta manipular o evento de passagem do mouse e pedir para exibir uma dica de ferramenta. t é uma dica de ferramenta definida nas globais ou no construtor usando:
o manipulador de eventos:
fonte