Tooltip sur un contrôle utilisateur

Résolu
crazychris64 Messages postés 5 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 2 août 2007 - 20 juil. 2007 à 16:14
crazychris64 Messages postés 5 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 2 août 2007 - 2 août 2007 à 10:22
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

cs_Yxion Messages postés 219 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 7 septembre 2009
23 juil. 2007 à 16:09
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
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 juil. 2007 à 16:53
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-
0
cs_Yxion Messages postés 219 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 7 septembre 2009
20 juil. 2007 à 17:01
ToolTip



toolTip1

=
new 
System

.
Windows

.
Forms

.
ToolTip
();
toolTip1

.
SetToolTip(

this.button1
,

"bzzzzzzzzzz"
);
0
crazychris64 Messages postés 5 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 2 août 2007
20 juil. 2007 à 17:04
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crazychris64 Messages postés 5 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 2 août 2007
20 juil. 2007 à 17:10
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.
0
crazychris64 Messages postés 5 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 2 août 2007
23 juil. 2007 à 10:03
Bonjour à tous,

toujours pas d'idée pour résoudre mon pb?
0
crazychris64 Messages postés 5 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 2 août 2007
2 août 2007 à 10:22
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.
0
Rejoignez-nous