PDA

View Full Version : مبتدی: نشانگر موس در سی شارپ



YasserDivaR
یک شنبه 20 تیر 1395, 19:40 عصر
سلام من از این کد برا لود نشانه گر موس توی فرمم استفاده کردم


this.Cursor = new Cursor(GetType(), "Link Select.cur");


از اونجایی که کیفیت بالایی داشت چرا سیاه میشه؟؟؟

c0mmander
یک شنبه 20 تیر 1395, 21:19 عصر
احتمالا به دلیل تراکم پیکسلی بالاست در یک محدوده رزلوشنی پایین هست. تراکم پیکسلی کرسر رو متناسب با رزلوشن تغییر بدید.

YasserDivaR
دوشنبه 21 تیر 1395, 21:12 عصر
احتمالا به دلیل تراکم پیکسلی بالاست در یک محدوده رزلوشنی پایین هست. تراکم پیکسلی کرسر رو متناسب با رزلوشن تغییر بدید.

خوب این که کیفیتش میشه مث همون VB6 خودمون که
نشانه گر ها رو از یه سری سایت دانلود کردم و بنظرم این دلیلی نمیشه کیفیت رو بیارم پایین
دات نت با اون عظممتش راه حلی نیندیشیده؟

c0mmander
دوشنبه 21 تیر 1395, 21:33 عصر
خوب این که کیفیتش میشه مث همون VB6 خودمون که
نشانه گر ها رو از یه سری سایت دانلود کردم و بنظرم این دلیلی نمیشه کیفیت رو بیارم پایین


این اصلی که خدمتون عرض کردم یک اصل کلی گرافیکیه به عنوان مثال وقتی شما یک تصویر با رزلوشن 500*500 و تراکم پیکسلی 16 میلیون رنگ رو در یک قالب تصویر با رزلوشن 25*25 میارید کیفیت نمایش داده شده بشدت پایینه اون هم دلیلش مشخصه. این ارتباطی با زبان توسعه دهنده یا بستر توسعه ای نداره. مثلا در برنامه های اندروید اگر دقت کرده باشید برای هر رزلوشن دستگاه تصویر مربوط به همون رزلوشن رو قرار میدن تا کیفیت نمایش داده شده پایین نیاد.


دات نت با اون عظممتش راه حلی نیندیشیده؟

من هم برای تغییر کرسر موس از کد مشابه و کلاس Cursor استفاده میکنم. اما راه دیگه هم مثل استفاده از توابع api هست. تا اونجایی که من اطلاع دارم.

Cursor myCur = new Cursor(Properties.Resources.CustomIcon.Handle);

Mahmoud.Afrad
سه شنبه 22 تیر 1395, 10:07 صبح
در winform نمیتونید کرسر رنگی به فرمت .cur یا انیمیشن(.ani) ، به کرسر موس اختصاص بدید. منبع: https://msdn.microsoft.com/en-us/library/system.windows.forms.cursor(v=vs.110).aspx

میتونید فایلهای کرسر را به PNG تبدیل کنید و بعد استفاده کنید. اگر از ریسورس استفاده میکنید عکس PNG رو به عنوان Image به ریسورس اضافه کنید به صورت کدی که c0mmander (http://barnamenevis.org/member.php?332447-c0mmander) گذاشتند عمل کنید.

YasserDivaR
سه شنبه 22 تیر 1395, 21:24 عصر
در winform نمیتونید کرسر رنگی به فرمت .cur یا انیمیشن(.ani) ، به کرسر موس اختصاص بدید. منبع: https://msdn.microsoft.com/en-us/library/system.windows.forms.cursor(v=vs.110).aspx

میتونید فایلهای کرسر را به PNG تبدیل کنید و بعد استفاده کنید. اگر از ریسورس استفاده میکنید عکس PNG رو به عنوان Image به ریسورس اضافه کنید به صورت کدی که c0mmander (http://barnamenevis.org/member.php?332447-c0mmander) گذاشتند عمل کنید.


این اصلی که خدمتون عرض کردم یک اصل کلی گرافیکیه به عنوان مثال وقتی شما یک تصویر با رزلوشن 500*500 و تراکم پیکسلی 16 میلیون رنگ رو در یک قالب تصویر با رزلوشن 25*25 میارید کیفیت نمایش داده شده بشدت پایینه اون هم دلیلش مشخصه. این ارتباطی با زبان توسعه دهنده یا بستر توسعه ای نداره. مثلا در برنامه های اندروید اگر دقت کرده باشید برای هر رزلوشن دستگاه تصویر مربوط به همون رزلوشن رو قرار میدن تا کیفیت نمایش داده شده پایین نیاد.



من هم برای تغییر کرسر موس از کد مشابه و کلاس Cursor استفاده میکنم. اما راه دیگه هم مثل استفاده از توابع api هست. تا اونجایی که من اطلاع دارم.

Cursor myCur = new Cursor(Properties.Resources.CustomIcon.Handle);

درود بر شما
اتفاقا میشه ولی خوب باید فایل رو از ادرسی لود کنید تا کیفیت بالا بتونه اعمال بشه


[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern IntPtr LoadCursorFromFile(string fileName);
private void Form1_Load(object sender, EventArgs e)
{
IntPtr handle = LoadCursorFromFile(@"F:\Programming\Cursor\night_diamond_v2_0___ruby_re d_by_theblueguy07-d4fxlfo\Night Diamond v2.0 - Ruby Red\[RR] Busy v2.0.ani");
Cursor myCursor = new Cursor(handle);
this.Cursor = myCursor;

}