আমি কীভাবে মাউস পজিশন পাব? আমি পর্দার অবস্থানের মেয়াদে এটি চাই।
আমি আমার প্রোগ্রামটি শুরু করি আমি বর্তমান মাউস অবস্থানটিতে সেট করতে চাই।
Location.X = ??
Location.Y = ??
সম্পাদনা: ফর্মটি তৈরি হওয়ার আগে এটি অবশ্যই ঘটবে।
আমি কীভাবে মাউস পজিশন পাব? আমি পর্দার অবস্থানের মেয়াদে এটি চাই।
আমি আমার প্রোগ্রামটি শুরু করি আমি বর্তমান মাউস অবস্থানটিতে সেট করতে চাই।
Location.X = ??
Location.Y = ??
সম্পাদনা: ফর্মটি তৈরি হওয়ার আগে এটি অবশ্যই ঘটবে।
উত্তর:
আপনার System.Windows. Forms.Cursor.Position ব্যবহার করা উচিত : "একটি পয়েন্ট যা স্ক্রিনের স্থানাঙ্কগুলিতে কার্সারের অবস্থান উপস্থাপন করে।"
PointToClient
।
আপনি যদি ফর্মগুলি উল্লেখ করতে না চান তবে আপনি কার্সারের অবস্থান পেতে ইন্টারপ ব্যবহার করতে পারেন:
using System.Runtime.InteropServices;
using System.Windows; // Or use whatever point class you like for the implicit cast operator
using System.Drawing;
/// <summary>
/// Struct representing a point.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
public static implicit operator Point(POINT point)
{
return new Point(point.X, point.Y);
}
}
/// <summary>
/// Retrieves the cursor's position, in screen coordinates.
/// </summary>
/// <see>See MSDN documentation for further information.</see>
[DllImport("user32.dll")]
public static extern bool GetCursorPos(out POINT lpPoint);
public static POINT GetCursorPosition()
{
POINT lpPoint;
GetCursorPos(out lpPoint);
// NOTE: If you need error handling
// bool success = GetCursorPos(out lpPoint);
// if (!success)
return lpPoint;
}
Cursor.Position (যদি আপনি একটি আছে মাউসের বর্তমান স্ক্রীনে poisition পাবেন কন্ট্রোল , MousePosition সম্পত্তি একই মান পেতে হবে)।
মাউস অবস্থান নির্ধারণ করতে, আপনাকে Cursor.Position
এটি ব্যবহার করতে হবে এবং এটি একটি নতুন পয়েন্ট দিতে হবে :
Cursor.Position = new Point(x, y);
Main
আপনার ফর্ম তৈরির আগে আপনি আপনার পদ্ধতিতে এটি করতে পারেন ।
আপনার নির্দিষ্ট উদাহরণের উত্তর দিতে:
// your example
Location.X = Cursor.Position.X;
Location.Y = Cursor.Position.Y;
// sample code
Console.WriteLine("x: " + Cursor.Position.X + " y: " + Cursor.Position.Y);
using System.Windows.Forms;
এটি যুক্ত করতে এবং এতে রেফারেন্স যুক্ত করতে ভুলবেন না (রেফারেন্সগুলিতে ডান ক্লিক করুন> রেফারেন্স যুক্ত করুন> নেট ট্যাব> সিস্টেমস। উইন্ডোস For ফর্মস> ওকে)
System.Windows.Forms.Control.MousePosition
স্ক্রিন স্থানাঙ্কগুলিতে মাউস কার্সারের অবস্থান পান। "অবস্থানের সম্পত্তিটি নিয়ন্ত্রণের মতো।
পজিশনটি পেতে অনমাউস ইভেন্টটি দেখুন at মাউসএভেন্টআর্গস আপনাকে x এক্স ওয়াই অবস্থান দেবে ...
protected override void OnMouseMove(MouseEventArgs mouseEv)
মাউস অবস্থান নির্ধারণ করতে কার্সার.পজিশন বৈশিষ্ট্যটি ব্যবহার করুন।
http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.position.aspx
internal static class CursorPosition {
[StructLayout(LayoutKind.Sequential)]
public struct PointInter {
public int X;
public int Y;
public static explicit operator Point(PointInter point) => new Point(point.X, point.Y);
}
[DllImport("user32.dll")]
public static extern bool GetCursorPos(out PointInter lpPoint);
// For your convenience
public static Point GetCursorPosition() {
PointInter lpPoint;
GetCursorPos(out lpPoint);
return (Point) lpPoint;
}
}
আপনার যদি ফর্মের অঞ্চলে বর্তমান অবস্থান পেতে প্রয়োজন (পরীক্ষামূলকভাবে পেয়েছেন), চেষ্টা করুন:
Console.WriteLine("Current mouse position in form's area is " +
(Control.MousePosition.X - this.Location.X - 8).ToString() +
"x" +
(Control.MousePosition.Y - this.Location.Y - 30).ToString()
);
যদিও, 8 এবং 30 টি পূর্ণসংখ্যার পরীক্ষা করে দেখা গেছে।
কেউ যদি এই সংখ্যাগুলি ঠিক কেন ব্যাখ্যা করতে পারে তবে দুর্দান্ত হবে ^
এছাড়াও, আরও একটি বৈকল্পিক রয়েছে (কোড বিবেচনা করে ফর্মের কোডবিহাইন্ডে রয়েছে):
Point cp = this.PointToClient(Cursor.Position); // Getting a cursor's position according form's area
Console.WriteLine("Cursor position: X = " + cp.X + ", Y = " + cp.Y);
ডিএলএল আমদানি করতে আপনার অবশ্যই নিম্নলিখিত আমদানি থাকতে হবে
using System.Runtime.InteropServices;
using System.Diagnostics;