Je sais que cela devrait être très simple, compte tenu de toutes les informations et des exemples de codes en ligne, mais pour une raison quelconque, je n'arrive pas à le faire fonctionner.
J'ai une étiquette et un panneau sur un winform. Je veux que l'étiquette suive uniquement le pointeur de la souris lorsqu'elle entre et se déplace dans le panneau.
J'ai réussi à le faire fonctionner, mais son emplacement est totalement décalé et il change constamment lorsque vous déplacez la fenêtre.
Voici les événements MouseMove et autres :
constructor MainForm;
begin
InitializeComponent();
label2.Visible:=false;
end;
method MainForm.panel1_MouseMove(sender: System.Object; e: System.Windows.Forms.MouseEventArgs);
begin
//label2.Location := panel1.PointToScreen(e.Location);
label2.Location := self.PointToScreen(e.Location);
label2.Invalidate;
end;
method MainForm.panel1_MouseEnter(sender: System.Object; e: System.EventArgs);
begin
label2.Visible:=true;
end;
method MainForm.panel1_MouseLeave(sender: System.Object; e: System.EventArgs);
begin
label2.Visible:=false;
end;
Mise à jour Comme suggéré par larstech, j'ai modifié le code, mais l'étiquette apparaît toujours en dehors de la boîte comme le montre l'image ci-dessous.
Merci,