Si c'est le seul qui peut éventuellement infobulle être affiché, utilisez Tommy Solution.
S'il y a des infobulles hors de votre contrôle, vous pouvez énumérer toutes les infobulles et vérifier si l'un d'eux est
a) montré
b) dans vos limites de forme/applications
un peu comme ceci:
Native.EnumWindows ew = new Native.EnumWindows();
ew.GetWindows();
foreach (EnumWindowsItem item in ew.Items)
{
//find all windows forms tooltips currently visible
if (item.ClassName.StartsWith("WindowsForms10.tooltips_class32") && item.Visible)
{
//check if tooltip is on within form bounds
if (item.Location.X >= this.Location.X && item.Location.Y >= this.Location.Y &&
item.Location.X <= this.Location.X + this.Width &&
item.Location.Y <= this.Location.Y + this.Height)
{
//Tooltip currently shown within form bounds
}
}
}
utilisant this code pour l'emballage EnumWindows Interop. C'est un peu un hack et si la solution de Tommy fonctionne pour vous, c'est mieux mieux.
Si vous utilisez .Net 3.0 ou 3.5, il existe un indicateur IsOpen pour cela. Pour le framework 2.0, j'imagine que ToolTip.Active aiderait. Pas sûr cependant. – danish
'IsOpen' est seulement une propriété sur les infobulles WPF, pas sur les infobulles winforms. – Xilconic
La propriété ToolTip.Active est indépendante de l'affichage de l'info-bulle. Il reste cependant votre code le définit, jusqu'à ce que votre code le change. –