나는 다소 똑바로 될 것이라고 생각한 것을 달성하려고하지만, 분명히 아닙니다.Mouseup시 값을 반환하려고 시도 C#
달성하고자하는 것은 다음과 같습니다. 사용자가 툴바의 버튼을 누르면 UI의 상태가 변경됩니다. 이제 사용자가 마우스를 클릭 할 때 상태가 변경되었으므로 마우스를 드래그하여 화면에 상자를 만들 수 있습니다. 마우스를 올리면 x, y 좌표를 반환하고 싶습니다. 기본적으로이
protected void MyUI_MouseDown(object inSender , MouseEventArgs inArgs)
{
switch(myState)
{
case CreateBox:
Rectangle rect = DrawBox();
}
}
public Rectangle DrawBox()
{
myDrawFlag = true;
}
private MyUI_MouseMove(object inSender , MouseEventArgs inArgs)
{
if(myDrawFlag)
{
DrawBox(inArgs.X , inArgs.Y);
}
}
같은
그러니까 기본적으로 뭔가, 나는 C. 마우스 아래로 UI의 상태를 변경 가리 키도록 지점 A에서 얻을하는 방법을 잘 모르겠어요 나를 통해 화면에 그릴 수 있습니다 마우스 이동 -하지만 마우스 UP 값을 반환하고 싶습니다.
내가 잘못하고있는 것을 알고 있습니다. 누군가가 내게 무엇을 말할 수 있습니까?
편집 1 : 그렇습니다. DrawBox()에는 아무 것도 없습니다. 기본적으로 내 질문은 어떻게 그 방법은 UNTIL로 돌아 오지 않는가, 나는 마우스 업 이벤트를 얻을 수 있습니까?
편집 2 : 마우스 움직임 이벤트를 추적 중입니다. 마우스가 움직이면 시작 X, Y 및 새 끝점 X, Y를 업데이트합니다. 나는 아직도 내가이 질문을 정확하게하지 않는다고 생각한다.
마우스 업 이벤트가 발생할 때까지 DrawBox()를 반환하지 않으려합니다. Mouse-Down은 UI에 화면에 상자를 그릴 수 있음을 알립니다. (내가 사용하고있는) Mouse-Move는 좌표를 업데이트합니다. 그리고 나서 Mouse-Up은 더 이상 그릴 수없는 UI에 알려야하며 그 다음에는 DrawBox()가 포인트를 반환해야합니다.
DrawBox() 메서드는 Rectangle을 반환하도록 정의되어 있지만 반환되지는 않습니다. 일부 코드가 누락 되었습니까? –
내 질문은 어떻게 그것을 반환 할 수 있습니다. DrawBox 메서드를 입력 할 때 마우스를 드래그 할 때 플래그를 설정하므로 화면에 그릴 수 있습니다. 기본적으로 마우스 업까지 DrawBox를 종료하고 싶지 않습니다. 하지만 어떻게해야할지 모르겠다. ... 그것은 내가 생각하기에 스레딩 문제이다.하지만 나는 몰라. –
이벤트 중심의 시스템에서는 그런 일을하지 않는다. 마우스 다운, 마우스 이동 및 마우스 업 이벤트를 추적하고 각각의 처리를 작고 효율적으로 유지합니다. –