Tooltip sur Status bar

Signaler
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
-
Nikoui
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
-
Bonjour, j'ai créé une Status bar, qui contient deux panels.

J'aimerai rajouter un tool tip a l'un de mes panels, mais ca ne marche pas :



Première tentative, en utilisant la propriété ToolTipText du panel :

monPanelDeStatusBar.ToolTipText = "Hello";

-> ca n'affiche rien




Deuxième tentative, en utilisant un objet ToolTip :

monObjetToolTip.SetToolTip(monPanelDeStatusBar, "Hello");

-> ça ne compile même pas (comment ça c'est pas un contrôle mon StatusBarPanel ?!)




Troisième tentative, toujours avec un objet ToolTip :

monObjetToolTip.SetToolTip(maStatusBar, "Hello");


-> ça compile, mais ne m'affiche toujours rien...




Pourtant je me souviens l'avoir déjà fait, donc je dois oublier un truc, mais quoi

8 réponses

Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
1
Bonjour,

Assures toi que la propriété Showpanels de ta status bar est bien a TRUE.

Ensuite si tu fais dans ton form.load() :



private
void Form1_Load(
object sender, System.EventArgs e)


{


StatusBarPanel monPanel = statusBar1.Panels[0] ;


monPanel.ToolTipText = "tut" ;


}



Cela ajoute le tooltip a ton panel.

D'autre par, tu peux metter en statique le texte de ton tooltip dans les propriétés de ta status bar.

voili voilou
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
1
ca dépend de ou il met son code d'affectation de la tooltip ....
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Alors pour vous répondre :

- j'ai bien mis la propriété show panel a true, d'ailleur mon panel fonctionne normalement, je peux changer son Text, etc.

- j'ai mis une valeur en dur dans la propriété "ToolTip" du panel lors
de la création du panel (je précise que j'ai créé le panel via l'IHM
(propriété Panels de ma statusbar) et non par code)

- J'essaye de modifier la valeur de mon tooltip depuis le code, par exemple sur un évènement d'un bouton.



Je n'ai pas le code avec moi, mais peut être que je ne peux pas accéder
directement a mon panel, je m'explique : j'ai créé comme je le disait
mon panel par l'IHM, a partir de la propriété Panels de ma status bar.
J'ai donc précisé, entre autre un nom de variable pour mon panel, et
c'est a travers ce nom que je tente d'accéder directement au panel.



Je devrais peut etre "récupérer" le panel de la status bar pour y
accéder (avec un truc du genre maStatusBar.Panels[0]), puis utiliser
cette variable...



Mais si cela marche (pas le temps de tester pour le moment) :

- pourquoi donner un nom de variable aux panels dans ce cas ?

- pourquoi le tool tip que j'ai mis lors de la création du panel ne s'affiche pas ?
Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
1
Bon, j'ai crée une winform avec une status bar comprenant 2 panels.


je te file le code :



public
class Form1 : System.Windows.Forms.Form


{



private System.Windows.Forms.StatusBar statusBar1;



private System.Windows.Forms.StatusBarPanel statusBarPanel1;



private System.Windows.Forms.StatusBarPanel statusBarPanel2;



private System.Windows.Forms.Button button1;



/// <summary>



/// Variable nécessaire au concepteur.



/// </summary>



private System.ComponentModel.Container components =
null;



public Form1()


{



//



// Requis pour la prise en charge du Concepteur Windows Forms



//


InitializeComponent();



//



// TODO : ajoutez le code du constructeur après l'appel à InitializeComponent



//


}



/// <summary>



/// Nettoyage des ressources utilisées.



/// </summary>



protected
override
void Dispose(
bool disposing )


{



if( disposing )


{



if (components !=
null)


{


components.Dispose();


}


}



base.Dispose( disposing );


}


#region Code généré par le Concepteur Windows Form



/// <summary>



/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas



/// le contenu de cette méthode avec l'éditeur de code.



/// </summary>



private
void InitializeComponent()


{



this.statusBar1 =
new System.Windows.Forms.StatusBar();



this.statusBarPanel1 =
new System.Windows.Forms.StatusBarPanel();



this.statusBarPanel2 =
new System.Windows.Forms.StatusBarPanel();



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


((System.ComponentModel.ISupportInitialize)(
this.statusBarPanel1)).BeginInit();


((System.ComponentModel.ISupportInitialize)(
this.statusBarPanel2)).BeginInit();



this.SuspendLayout();



//



// statusBar1



//



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



this.statusBar1.Name = "statusBar1";



this.statusBar1.Panels.AddRange(
new System.Windows.Forms.StatusBarPanel[] {



this.statusBarPanel1,



this.statusBarPanel2});



this.statusBar1.ShowPanels =
true;



this.statusBar1.Size =
new System.Drawing.Size(292, 22);



this.statusBar1.TabIndex = 0;



//



// statusBarPanel1



//



this.statusBarPanel1.Text = "statusBarPanel1";



this.statusBarPanel1.ToolTipText = "truc";



//



// statusBarPanel2



//



this.statusBarPanel2.Text = "statusBarPanel2";



//



// button1



//



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



this.button1.Name = "button1";



this.button1.TabIndex = 1;



this.button1.Text = "button1";



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



//



// Form1



//



this.AutoScaleBaseSize =
new System.Drawing.Size(5, 13);



this.ClientSize =
new System.Drawing.Size(292, 273);



this.Controls.Add(
this.button1);



this.Controls.Add(
this.statusBar1);



this.Name = "Form1";



this.Text = "Form1";



this.Load +=
new System.EventHandler(
this.Form1_Load);


((System.ComponentModel.ISupportInitialize)(
this.statusBarPanel1)).EndInit();


((System.ComponentModel.ISupportInitialize)(
this.statusBarPanel2)).EndInit();



this.ResumeLayout(
false);


}


#endregion



/// <summary>



/// Point d'entrée principal de l'application.



/// </summary>


[STAThread]



static
void Main()


{


Application.Run(
new Form1());


}



private
void Form1_Load(
object sender, System.EventArgs e)


{


StatusBarPanel monPanel = statusBar1.Panels[0] ;


monPanel.ToolTipText = "tut" ;


}



private
void button1_Click(
object sender, System.EventArgs e)


{


statusBarPanel1.ToolTipText ="changed" ;


}


}

Quand tu load ta form ca met "tut" dan sle panel 0

quand tu clic sur le bouton ca change le tooltip.

jusqu'ici ca marche, je ne comprned pas pourquoi ca déconne chez toi
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Bon, j'ai fait plus ou moins la même chose ici au boulot et ca marche
parfaitement... soit j'était très fatigué hier soir, soir y'a un truc
étrange sur ma config "à la maison", soit j'ai fait une boulette
quelque part dans mon code initial...



Je vérifierai ce soir et je vous tiendrais au courant...
Messages postés
433
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
4 décembre 2009
1
c'est a cause des petits lutins dans ta machine :)))
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Bon alors effectivement, la cause de mon problême semble être... les petits lutins :(



Je viens de faire le même test que celui que j'ai fait au boulot, mais chez moi cette fois : ben pas de tool tip

Et j'ai copié/collé le code de titeoe juste au dessus, ben pas de tool tip non plus

Snif, je dois avoir une version moisie du framework, de visual studio, de windows, voire des 3 à la fois :(



Pour info ma config "moisie" :

MSDev2003 v7.1.3088

Framework v1.1.4322 SP1

Win2000 Pro 5.00.2195