我知道这应该是非常简单的,尤其是考虑到所有的在线信息和示例代码,但由于某种原因,我无法让这个工作。如何使用MouseMove事件在面板内移动标签?
我在winform上有一个标签和一个面板。我希望标签只在鼠标指针进入并在面板内移动时才遵循。
我知道它的工作原理,但它的位置完全移动了,并且在移动winform时它总是在变化。
这里是的MouseMove和其他事件:
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;
更新如所建议的通过larstech,我修改了的代码,但该标签仍然显示框外如下图像被示出。
感谢,
是标签PANEL1的子控件?这不是很清楚。 – LarsTech
@LarsTech不,它不是。该标签不在面板内的Winform上。 Panel1文本是包含文本“Panel1. – ThN