2009-12-26 44 views
6

Tôi không hiểu tại sao Cursor.Position khác với MouseEventArgs.Location, chúng phải giống nhau, đúng không?Sự khác biệt giữa MousEventArgs.Location và Cursor.Position

Chỉnh sửa: Câu trả lời dường như gợi ý rằng Cursor.Position== PointToScreen(MouseEventArgs.Location), nhưng thử nghiệm của tôi cho biết cách khác.

+0

khi bạn làm bài kiểm tra, đảm bảo chuột không di chuyển tại thời điểm đó. – Benny

Trả lời

10

MouseEventArgs.Position là chuột con trỏ vị trí liên quan đến sự kiểm soát trong thời gian sự kiện, tại thời điểm sự kiện.

Dấu trỏ.Đặt vị trí là hiện tại vị trí con trỏ chuột liên quan đến máy tính để bàn.

+0

Đây là câu trả lời * mà tôi đang tìm kiếm; nếu bạn đang chạy trong trình gỡ lỗi và bạn đặt kích thước điều khiển là kích thước màn hình, cả hai có thể khác nhau và đây là điều khiến tôi bối rối. – Graviton

+0

thậm chí kích thước điều khiển là kích thước màn hình, nhưng kích thước máy khách không phải là kích thước màn hình. – Benny

+0

Tôi không hiểu câu trả lời hoặc không chính xác. Thực hiện một hình thức simle với một nút và nhãn với thông tin về các giá trị thảo luận. Nhấn một nút và sau đó không di chuyển chuột. Có các nhãn tace trên biểu mẫu: Cursor.Position = {X = 159, Y = 246}, e.Location = {X = 11, Y = 6}, PointToScreen (e.Location) = {X = 69, Y = 86}. –

0

Tôi nghĩ Cursor.Position là tương đối so với máy tính để bàn, trong khi MouseEventArgs.Location là liên quan đến kiểm soát mà bắn sự kiện

+0

Thử nghiệm của tôi chỉ ra rằng 'PointToScreen (MouseEventArgs.Position)' không được so sánh với 'Cursor.Position'. – Graviton

0

MouseEventArgs.Position là tương đối so với hình chữ nhật client của sự kiểm soát, con trỏ. Vị trí nằm trong phối hợp màn hình.

+0

Thử nghiệm của tôi chỉ ra rằng 'PointToScreen (MouseEventArgs.Position)' không được so sánh với 'Cursor.Position'. – Graviton

+0

Tôi đã thử nghiệm, chúng giống nhau. – Benny

1

MouseEventArgs.location cung cấp cho bạn vị trí con trỏ liên quan đến điều khiển trong sự kiện.

Windows.Forms.Cursor.Position cung cấp cho bạn vị trí con trỏ so với màn hình nền.

Rõ ràng, hai trường hợp này không cần và không giống nhau. Sau đó có thể được sử dụng mà không có một sự kiện như vậy quá không giống như MouseEventArgs.Location

+0

Thử nghiệm của tôi chỉ ra rằng 'PointToScreen (MouseEventArgs.Position)' không được so sánh với 'Cursor.Position'. – Graviton

+0

Đó là vì MouseEventArgs.Position là vị trí chuột tại thời điểm sự kiện và Cursor.Position là vị trí hiện tại. –

Các vấn đề liên quan