【发布时间】:2011-11-17 19:03:04
【问题描述】:
我知道这应该非常简单,尤其是考虑到所有在线信息和示例代码,但由于某种原因,我无法让它工作。
我在 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 的建议,我修改了代码,但标签仍然显示在框外,如下图所示。
谢谢,
【问题讨论】:
-
Label是panel1的子控件吗?不太清楚。
-
@LarsTech 不,不是。标签在winform上,不在面板内。 Panel1 text 是包含文本“Panel1. 的标签
标签: .net delphi mouseevent panel delphi-prism