나는 이것이 모든 정보와 예제 코드를 온라인으로 제공하면서 매우 단순해야한다는 것을 알고있다. 그러나 어떤 이유에서 나는 이것을 작동시킬 수 없다.MouseMove 이벤트를 사용하여 패널 내에서 Label을 이동하는 방법은 무엇입니까?
winform에 레이블과 패널이 있습니다. 패널 내로 들어가서 움직일 때 레이블 만 마우스 포인터를 따라 가길 원합니다.
나는 그것을 작동 시켰지만 그 위치는 완전히 바뀌었고 winform을 움직이면 항상 바뀌었다.
가 여기에 MouseMove 이벤트 및 기타 이벤트입니다 : larstech에 의해 제안
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;
업데이트, 나는 코드를 수정하지만 아래 그림이 표시되어 같은 레이블은 여전히 상자의 밖에서 보이고있다.
감사합니다,
이 레이블에 Panel1의 자식 컨트롤인가? 그것은 분명하지 않습니다. – LarsTech
@LarsTech 아니야. 레이블은 패널 내부가 아닌 winform에 있습니다. Panel1 텍스트는 "Panel1. – ThN