PDA

View Full Version : سوال: چه طور میشه تنظیم کرد که با باز شدن فرمی جدید، کرسر موس روی button خاصی باشه؟



zayens
دوشنبه 03 خرداد 1389, 19:34 عصر
می خوام که با باز شدن فرمی جدید، کرسر موس روی button خاصی باشه
همانند MessageBoxDefaultButton.Button1 در messageBox.
چه طور این کار امکان پذیره؟؟
با سپاس

L u k e
دوشنبه 03 خرداد 1389, 21:24 عصر
منظورتون از کرسور همون Focuse ؟
اگه اینه که باید با تابع Focus اینکارو بکنی
مثلا :
Text1.Focus();
اگه می خوای کلا فوکوس یه فرم روی یه Button باشه توی خصوصیات فرم AcpectButton رو دکمه مورد نظرت بزار

zayens
دوشنبه 03 خرداد 1389, 22:51 عصر
منظورتون از کرسور همون Focuse ؟
اگه اینه که باید با تابع Focus اینکارو بکنی
مثلا :
Text1.Focus();
اگه می خوای کلا فوکوس یه فرم روی یه Button باشه توی خصوصیات فرم AcpectButton رو دکمه مورد نظرت بزار
نخیر...
مثلا اگر از کد زیر استفاده کنید


MessageBox.Show("عملیات چاپ ناموفق بود ", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);

پس از نمایش پیغام بلافاصله کرسر(یا همون مکان نمای) موس روی Button1 رفته و نیازی نیست که کاربر
موس را روی این Button انتقال بده و فقط کافیه در صورت لزوم کلیک کنه.
برای مثال در ControlPanel هم در قسمت تنظیمات موس، در سربرگ Pointer Option در قسمت Snap To یک چک مارک وجود داره با عنوان:
Automatically move pointer to the default button in a dialog box
که همین کار را میکنه.

Netsky
دوشنبه 03 خرداد 1389, 23:19 عصر
سلام .
اگه بخايد قابليت Snap To رو فعال كنيد ، ميتونيد از اين كد استفاده كنيد :


public void Mouse_Snap(bool Snap)
{

if (Snap == true) {
Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\Mouse", "SnapToDefaultButton", "1");
}
else {
Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\Mouse", "SnapToDefaultButton", "0");

}
}
موفق باشيد ...........

zayens
سه شنبه 04 خرداد 1389, 13:16 عصر
سلام .
اگه بخايد قابليت Snap To رو فعال كنيد ، ميتونيد از اين كد استفاده كنيد :



public void Mouse_Snap(bool Snap)

{


if (Snap == true) {
Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\Mouse", "SnapToDefaultButton", "1");
}
else {
Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\Mouse", "SnapToDefaultButton", "0");


}

}

موفق باشيد ...........
ممنون
ولی راستش هدف من اصلا فعال کردن Snap To نیست.
چون حتی اگر فعالش هم بکنیم(چه دستی و چه با کد) باز هم مشکل حل نمیشه.
کار Snap To چیه؟ اینه که اگر در هنگام کار با ویندوز، پیغامی داده میشه، مکان نمای موس سریع بروی یکی از دکمه های مشخص شده میره.
برای مثال اگر Snap To فعال باشه هر وقت مثلا فایلی را انتخاب و دکمه ی Delete را بزنیم پیغامی با عنوان اینکه مطمئن هستید؟ نمایش داده میشه و مکان نمای موس در هر جای صفحه هم که باشه، سریعا به دکمه ی Yes برده میشه.
در هر صورت من هم می خوام تا کاربر، به محض باز کردن بعضی فرمها در برنامه، نیازی به حرکت دادن موس نداشته باشه و مکان نما روی دکمه ای خاص(default Button) برده بشه.

happy65_sh
سه شنبه 04 خرداد 1389, 13:33 عصر
خوب چرا توي لود فرمت نمي گي defaultbutton انتخاب بشه

Open-Source
سه شنبه 04 خرداد 1389, 13:42 عصر
اینطوری میشه جای کرسر رو تغییر داد.
Cursor.Position = new Point(100, 100);

zayens
سه شنبه 04 خرداد 1389, 13:52 عصر
خوب چرا توي لود فرمت نمي گي defaultbutton انتخاب بشه
چه جوری بگم؟:لبخند:
از توی Properties؟


اینطوری میشه جای کرسر رو تغییر داد.
Cursor.Position = new Point(100, 100);
فکرش را بکن من نزدیک 20 تا فرم دارم.حالا باید دونه دونه بیام ببینم مختصات فلان دکمه کجاست؟
هم وقتگیره... هم معقول نیست.
اگر کار بر size یا position فرم را تغییر بده چی؟
نه... حتما باید یه راه دیگه ای داشته باشه

Netsky
سه شنبه 04 خرداد 1389, 21:08 عصر
ولی راستش هدف من اصلا فعال کردن Snap To نیست.
چون حتی اگر فعالش هم بکنیم(چه دستی و چه با کد) باز هم مشکل حل نمیشه.
کار Snap To چیه؟ اینه که اگر در هنگام کار با ویندوز، پیغامی داده میشه، مکان نمای موس سریع بروی یکی از دکمه های مشخص شده میره.
برای مثال اگر Snap To فعال باشه هر وقت مثلا فایلی را انتخاب و دکمه ی Delete را بزنیم پیغامی با عنوان اینکه مطمئن هستید؟ نمایش داده میشه و مکان نمای موس در هر جای صفحه هم که باشه، سریعا به دکمه ی Yes برده میشه.
در هر صورت من هم می خوام تا کاربر، به محض باز کردن بعضی فرمها در برنامه، نیازی به حرکت دادن موس نداشته باشه و مکان نما روی دکمه ای خاص(default Button) برده بشه.
دوست عزيز شما ميخاي كرسر موس به محص باز شدن فرم يا پيغام سريعا بره روي دكمه مورد نظرتون . خب قابليت Snap To هم واسه همينه ديگه . دكمه مورد نظرتون رو ديفالت كنيد . Snap To هم كه فعال باشه ديگه مشكلي باقي نميمونه و كرسر سريعا روي دكمه پيش فرض ميره .
واقعا ديگه نميدونم ميخايد چيكار كنيد !!! :متعجب:

zayens
سه شنبه 04 خرداد 1389, 23:27 عصر
دوست عزيز شما ميخاي كرسر موس به محص باز شدن فرم يا پيغام سريعا بره روي دكمه مورد نظرتون . خب قابليت Snap To هم واسه همينه ديگه . دكمه مورد نظرتون رو ديفالت كنيد . Snap To هم كه فعال باشه ديگه مشكلي باقي نميمونه و كرسر سريعا روي دكمه پيش فرض ميره .
احیانا خاصیت defaultButton مخصوص ASP نیست؟؟
من توی فرمی که چند تا دکمه دارم چه طور باید دکمه مورد نظرم را دیفالت کنم؟
با focus هم که جواب نمی ده:عصبانی++:

اوبالیت به بو
چهارشنبه 05 خرداد 1389, 01:59 صبح
احیانا خاصیت defaultButton مخصوص ASP نیست؟؟
نه بابا
این خاصیت میاد دکمه پیش فرض رو انتخاب می کنه. مثلا موقع خروج دکمه پیش فرض No هست. یه بار امتحان کنید.

من توی فرمی که چند تا دکمه دارم چه طور باید دکمه مورد نظرم را دیفالت کنم؟
اگر اشتباه نکنم هر فرمی یه خاصیت داره به اسم Accept Button یا یه همچین چیزی که آخرش Button داره

zayens
چهارشنبه 05 خرداد 1389, 10:53 صبح
بسیار ممنون
بهتر بود دوستان به جای defaultButton که در ASP است مثل


Page.Form.defaultButton = "دکمه مورد نظر";

یه کلمه می گفتند Accept Button.
البته تقصیر منم بود که منظورشون را از default کردن دکمه نفهمیده بودم.
درهرصورت بسیار تشکر می کنم