2016-11-26 2 views
0

나는 mouseClick 위치의 중심 주위에 사각형을 그리려고하고있다. 그 때문에 나는 int로 x와 y 좌표를 얻을 필요가 있다고 느낍니다. x 및 y 좌표를 얻는 방법 mouseClick

let mouseClick (e: MouseEventArgs) = 
    let x = e.X 
    let y = e.Y 
    let coords = [|System.Drawing.Point((x-10),(y-10)); 
       System.Drawing.Point((x-10),(y+10)); 
       System.Drawing.Point((x+10),(y+10)); 
       System.Drawing.Point((x+10),(y-10)); 
       System.Drawing.Point((x-10),(y-10))|] 
    window.Paint.Add(fun e -> e.Graphics.DrawLines(pen, coords)) 

window.MouseClick.Add mouseClick 
나는 다음을 인쇄 할 때 일부는 이후 확장에 의미가있는 작동하지 않습니다 e.Location 속성을 사용하여 시도

(이 코드 및 e.X 또는 e.Y을 편집이 질문에 대한 솔루션입니다) "x = (일부 숫자) y = (일부 숫자)"를 인쇄합니다.

x 및 y 좌표를 정수로 가져 오는 데 도움이 될 수 있습니까? 당신은 단순히 당신의 편집에 관한 e

에서도 사용할 수있는 Location.XLocation.Y 특성을 반영 X 또는 Y 속성
를 접근 할 필요가 MouseEventArgs에서 마우스 위치를 얻기 위해, 주석에 명시된 바와 같이

+5

[documentation] (https://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs (v = vs.110) .aspx # Anchor_3)을 읽으려고 했습니까? 'eX'와'eY'가 있습니다. ('e.Location'도'X'와'Y' 속성을 가진'Point' 타입입니다.) – Sehnsucht

+0

분명히 이해하지 못하는 것은'mouseClick '는'MouseEventArgs -> Point []'타입을 가지고 있지만 마지막 라인에서는'Point []' 타입의 값으로 사용하고 있습니다. 어떤 주장을하는 것을 잊지 않습니까? – Sehnsucht

+0

내 코드를 다른 것으로 편집했습니다. Sehnsucht. 나랑 벗었 어. 나는 이틀 전에 F #과 winforms에 갔다. 여전히 기본을 파악하려고합니다. 그러나 새 코드로 인해 문제가 발생합니다. 이것은 실제로 원하는 위치에 직사각형을 그리지 만 창을 새로 고치려면 창을 최소화하고 최대화해야합니다. 그러나 나는 thats 다른 질문을위한 문제 같아요. – Nulle

답변

4

그리고 귀하의 추가 의견, 난 당신이 각 클릭과 새로운 Paint 처리기를 추가하여 뭔가 잘못한 것 같아요 그리고 당신은 그릴 필요가 (아마도 여전히 Refresh 어떤 시점에서 필요)

let mouseClick (e: MouseEventArgs) = 
    let x = e.X 
    let y = e.Y 
    let coords = [| System.Drawing.Point(x - 10, y - 10) 
        System.Drawing.Point(x - 10, y + 10) 
        System.Drawing.Point(x + 10, y + 10) 
        System.Drawing.Point(x + 10, y - 10) 
        System.Drawing.Point(x - 10, y - 10) |] 

    // maybe use instead of let ? 
    let g = window.CreateGraphics() 
    g.Graphics.DrawLines(pen, coords) 

window.MouseClick.Add mouseClick 
관련 문제