Tooltip sur un contrôle utilisateur [Résolu]

Signaler
Messages postés
5
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
2 août 2007
-
Messages postés
5
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
2 août 2007
-
Bonjour, je souhaiterai placer un tooltip sur un usercontrol de type Button. 
Le code implémenté est situé ci dessous.
Mon problème est que l'infobulle n'apparaît jamais sur mon bouton.
Pourtant dans le code je place bien sur mon boutonOK:
this.buttonOK.ToolTip =
"test d'info bulle"; 

J'ai bien vérifié que le this.buttonOK.enable = true.

Je ne comprends pas où ça pêche... Si vous avez une idée je vous en remercie d'avance.

Voici le code implémenté :

using

System;
using

System.Collections.Generic;
using

System.ComponentModel;
using

System.Drawing;
using

System.Data;
using

System.Text;
using

System.Windows.Forms; 

namespace

Gso.Siati.WinApp.UserControls{

//public partial class SButton : UserControl

public
partial
class
SButton :
Button{

private
IContainer components;

private
ToolTip toolTip1;

private
Button button1;

public SButton(){

InitializeComponent();

}

public
string ToolTip{

get{

return
this.toolTip1.GetToolTip(
this.button1);}

set{

this.toolTip1.SetToolTip(
this.button1,
value);}

}

private
void SButton_Load(
object sender,
EventArgs e){

}

private
void button1_Click(
object sender,
EventArgs e){

}

private
void InitializeComponent(){

this.components =
new System.ComponentModel.
Container();

this.button1 =
new System.Windows.Forms.
Button();

this.toolTip1 =
new System.Windows.Forms.
ToolTip(
this.components);

this.SuspendLayout();

//

// button1

//

this.button1.AutoEllipsis =
true;

this.button1.Location =
new System.Drawing.
Point(0, 0);

this.button1.MaximumSize =
new System.Drawing.
Size(96, 32);

this.button1.MinimumSize =
new System.Drawing.
Size(96, 32);

this.button1.Name =
"button1";

this.button1.Size =
new System.Drawing.
Size(96, 32);

this.button1.TabIndex = 0;

this.button1.Text =
"button1";

this.button1.UseVisualStyleBackColor =
true;

this.button1.Click +=
new System.
EventHandler(
this.button1_Click_1);

//

// toolTip1

//

this.toolTip1.IsBalloon =
true;

this.toolTip1.OwnerDraw =
true;

this.toolTip1.ShowAlways =
true;

//

// SButton

//

this.Size =
new System.Drawing.
Size(96, 32);

this.ResumeLayout(
false);}

}

}

7 réponses

Messages postés
219
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
7 septembre 2009

Voila un exemple complet :

Créer une nouvelle classe du nom de ton bouton avancée (ici MonBouton.... original non?)

public
class
MonBouton :
Button{

private
ToolTip _toolTip
=
new
ToolTip();

private
string _toolTipText;

public
string ToolTipText{

get {
return
this._toolTip
.GetToolTip(
this); }

set {
this._toolTip
.SetToolTip(
this,
value); }}

}

Ensuite... compile... ensuite passe en mode design sur ta form, et tu pourras inserer ce nouveau bouton qui apparaitra dans ta boite à outil, ensuite tu pourras belle et bien changer le texte de ton tooltip comme tu veux, quand tu veux comme cela :

this.

monBouton1
.ToolTipText
=
"button1_Click_1";
Et ca, ca marche.... testé par moi meme....

<hr />
I love .net
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
52
Salut,
J'ai pas regardé ton code, mais normalement tu peux faire tout ça avec le designer si tu dois pas le créer dynamiquement (et que t'es un peu une feignasse comme moi )

<hr />
-Blog-
Messages postés
219
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
7 septembre 2009

ToolTip



toolTip1

=
new 
System

.
Windows

.
Forms

.
ToolTip
();
toolTip1

.
SetToolTip(

this.button1
,

"bzzzzzzzzzz"
);
Messages postés
5
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
2 août 2007

Salut et merci de ta réponse.

J'ai bien utilisé le designer pour réaliser ce contrôle utilisateur bouton avec un tooltip par dessus. Mais comme je l'ai écrit plus haut le tooltip n'apparaît pas sur le contrôle utilisateur bouton même lorsque que je renseigne graphiquement la propriété Tooltip avec mon texte infobulle.

Je ne sais pas comment le faire fonctionner.
Si quelqu'un a une idée ou un exemple concret de controle utilisateur bouton avec tooltip qui est valide je suis preneur.

Cordialement.
Messages postés
5
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
2 août 2007

Salut, je te remercie de ta réponse.

J'ai déjà utilisé ce code comme tu peux le constaté au dessus.
J'ai encapsulé le tout avec un accesseur et un modificateur.


public
string ToolTip
{

   get
   {

      return
this.toolTip1.GetToolTip(
this.button1);
   }

   set
   {

      this.toolTip1.SetToolTip(
this.button1,
value);
   }
}




Mon code me semble bon mais lorsque je renseigne le tooltip graphiquement ou directement dans le code (this.buttonClose.Tooltip = "coucou";) je n'obtient pas d'infobulle à l'arrivée lorsque je passe le curseur sur le bouton close.
Messages postés
5
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
2 août 2007

Bonjour à tous,

toujours pas d'idée pour résoudre mon pb?
Messages postés
5
Date d'inscription
mardi 10 août 2004
Statut
Membre
Dernière intervention
2 août 2007

Salut,

Je te remercie de ta réponse. C'est exactement ce que j'avais fais mais j'ai du mal m'exprimer. Je voulais savoir s'il y avait la possibilité de créer un contrôle utilisateur (bouton + tooltip) qui une fois que tu l'insère en mode designer te permet de modifier sa propriété tooltiptext graphiquement sans insérer directement dans le code :
this.monBouton1
.ToolTipText
=
"button1_Click_1"

Personnellement je trouve que c'est plus propre quand toutes les infos du contrôle utilisateur sont dans la méthode initializeComponent().

Encore merci pour vos réponses et bonne continuation dans vos projets.