PDA

View Full Version : نمایش یک نقطه از فرم دارای scrollbar



MBeigy
چهارشنبه 07 اردیبهشت 1384, 23:20 عصر
سلام به همه دوستان
من یک فرم طراحی کردم که به علت بزرگی فرم از اسکرول بار هم در اون استفاده کردم اما میخوام از طریق کد بتونم اسکرول بار ها رو کنترل کنم. مثلا یک نقطه خاص از فرم رو که ممکنه الان دیده نشه با حرکت اسکرول بارها از طریق کد به کاربر نشون بدم. لطفا اگه کسی میدونه جطور میشه این کارو انجام داد بگه. ممنون :sunglass:

یاشار
پنج شنبه 08 اردیبهشت 1384, 04:16 صبح
من نمی‌دونم چطور اسکرول بار یک فرم رو می‌شه تنظیم کرد. اگر اصولا شدنی باشه باید از کلاس فرم ارث بگیرید و یک کلاس سفارشی با چند تا متد و خاصیت جدید تعریف کنی و درگیر گرافیک و GDI و این برنامه‌ها میشید.

ولی این رو میدونم که درست کردن فرم‌های بزرگ از نظر طراحی رابط کاربر یا همون UI ایراد داره و باید سعی کنید فرم رو به چند تا فرم کوچتر تقسیم کنید. کلا اسکرول بار برای فرم چیز جالبی نیست.

اگر برنامه طوریه که همه کنترل‌ها حتما باید روی یک فرم باشند و راه دیگه‌ای وجود نداره سعی کنید از TabControl استفاده کنید یا اینکه فرم رو به صورت Wizard طراحی کنید که در هر مرحله چند سوال پرسیده بشه و در نهایت یه کاری انجام بشه.

اگر یه کم راجع به فرمتون توضیح بدین که چی کار قراره بکنه شاید پیشنهاد بهتری به ذهنم برسه ::نوشتن::

MBeigy
جمعه 09 اردیبهشت 1384, 00:38 صبح
سلام
ممنون از اینکه جواب دادید. اینهایی که گفتی همه درست اما فرم من در واقع داره یک نقشه رو توی یک picturebox نشون میده و قابلیت زوم داره. بنابراین ممکنه که از صفحه بزرگتر بشه و به اسکرول بار نیاز داره. من میخوام وقتی اسم جای خاصی رو دادیم بااستفاده از اطلاعات دیتابیس فرم اسکرول بشه و اون منطقه رو نشون بده. لطفا اگه راهی به نظر هر یک از دوستان میرسه بگه. باز هم ممنون. :sunglass:

یاشار
جمعه 09 اردیبهشت 1384, 15:56 عصر
من باز هم جوابی برای اسکرول فرم ندارم.

ولی اگر من جای شما بودم، به جای اینکه اجازه بدم نقشه با اندازه واقعی خودش تو PicBox باز بشه، اون رو محدود می‌کردم به یه اندازه خاصی، که از اندازه فعلی فرم بزرگتر نباشه (مثلا با نسبت کوچکتر نشون میدادم یا یه فقط یک ناحیه ازش رو نشون میدادم) . بعد با استفاده از متد Crop شیی Image قضیه Zoom رو پیاده می‌کردم. اینطوری به راحتی میشه از مختصات گرفته شده از دیتابیس ( با فرض اینکه منظورتون از "اطلاعات دیتابیس" همین بوده باشه) برای نشون دادن ناحیه خاصی از تصویر استفاده کرد.

MBeigy
یک شنبه 11 اردیبهشت 1384, 23:24 عصر
سلام
من از شی Image استفاده کردم و یک عکس رو روی فرم نشون دادم ولی نه از zoom و نه از crop اثری ندیدم. ضمن اینکه در MSDN هم اینها رو جزو متدهای Image لیست نکده بود. لطفا اگه میتونی بیشتر راهنمایی کن.
ممنون از توجهتون :wink:

یاشار
دوشنبه 12 اردیبهشت 1384, 02:12 صبح
ببخشید، اشتباه از من بود. ( Crop مال فتوشاپ بود )

متد clip مربوط به Graphics رو روش کار کنید. متدهای دیگه برای scale هم داره که خیلی جالبند ولی آخرین بار پارسال باهاشون کار کردم و الان درست یادم نیست. با این‌ها و متدهای دیگه‌ی Drawing و Drawing2D و Graphics می‌تونید قضیه Zoom رو "پیاده" کنین، وگرنه همچین متدی آماده وجود نداره.