PDA

View Full Version : حرکت با ابزار دست



majidrezaei2007
یک شنبه 24 اردیبهشت 1391, 22:05 عصر
با عرض سلام خدمت اساتید گرامی و دوستان عزیزم

من توی برنامه یک پنل دارم که تعدادی کنترل روش قرار داره و اندازه اون تمام صفحه هست . با این حال هم به علت اینکه کنترل هاش زیاده ، خاصیت AutoScroll رو فعال کردم و فرم معمولا در حالت عادی scroll میخوره . حالا می خواستم بدونم چطور میشه ابزار دست (مانند نرم افزار Acrobate Reacder که می توانیم صفحه را بالا و پائین کنیم) رو شبیه سازی کرد . که کاربر با اون بتونه روی پنل حرکت کنه و قسمت های مختلفش رو ببینه ؟

اصلا چنین کاری میشه انجام داد یا نه ؟

gsearch
دوشنبه 25 اردیبهشت 1391, 00:29 صبح
اونجوری که من متوجه شدم می خوای پنیلت اسکرول نداشته باشه و با درگ کردن پنل جابجا بشه.
برای این کار شما می تونی اندازه پنلت رو بررسی کنی، اگه بزرگتر از جایی بود که براش در نظر گرفتی
کرسر رو به دست تغییر بده و رو mousedown بیا بر اساس میزان حرکت ماوس، پنل رو جا به جا کن.
اگه می خوای فصط به صورت عمودی جابه جا بشه فقط ارتفاعش رو تغییر بده و البته حدودش رو باید مشخص کنی که از محدوده مجاز خارج نشه.

majidrezaei2007
دوشنبه 25 اردیبهشت 1391, 01:02 صبح
آره اینو میدونم که باید چیکار کنم . اما همین که الان چه قسمتی از پنل رو نشون بده رو چطوری باید بهش بگم ؟

Mahmoud.Afrad
دوشنبه 25 اردیبهشت 1391, 03:30 صبح
int x, y;
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
if (e.Button == MouseButtons.Middle)
this.Cursor = Cursors.Hand;
}

private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Middle)
panel1.Location = new Point(panel1.Location.X, panel1.Location.Y + (e.Y - y));
}