PDA

View Full Version : ساخت دکمه Back شبیه ویندوز



top7news
شنبه 21 اردیبهشت 1387, 11:54 صبح
سلام به همه دوستان عزیز
من سال قبل هم این تاپیک توی تالار VB.net زده بودم که سال گذشته هم به جواب نرسیدم
حالا مجددا بهش نیاز پیدا کردم و ممنون میشم که کسی اگه ایده و نظری داره بیان کنه
سئوال من اینه :
چه طوری میشه برای یک دکمه کدی درست کرد که شبیه دکمه Back , Forward ویندوز خودش تشخیص بده که از کدوم فرم اومده و باید به کدوم فرم برگرده ؟
ممنون میشم اگه نظرات و پیشنهادات و راه حلهایی که احیانا خودتون استفاده کردین و به منم بگین
با تشکر:قلب:

smt_414
شنبه 21 اردیبهشت 1387, 12:13 عصر
سلام

شما در مورد" ارسال پارامتر به همراه سازنده فرم" رو در سایت جستجو کنید و مطالب پیدا شده رو مطالعه کنید
حتما ایده ای به ذهنتون خطور می کنه


موفق باشید

behzadk
شنبه 21 اردیبهشت 1387, 15:02 عصر
باید از پشته استفاده کنید
هر با که عملی یا به یه جایی می روید یه push کنید و در هنگام back یکی pop کنید

top7news
جمعه 21 تیر 1387, 12:33 عصر
مجددا سلام
من چند وقت پیش این سئوال رو. مطرح کرده بودم ولی به جواب درست و پیمونی نرسیدم
حالا دوباره به جواب سئوالم نیاز پیدا کردم
خودم سعی کردم با list box در نقش یک پشته ، اینکار رو بکنم ولی نشد .
ممنون میشم راهنمایی یا احیانا اگه جوابی دارین که راه حل این سئوال باشه برای منم بگین.
الگوریتم این دکمه به نظر من اینطوری اومد که توی لیست باکس اسم فرم هایی که وارد اونا شدیم ذخیره بشه و شبیه پشته هر بار برای برگشت به فرم قبل از توی لیست باکس اسم آخرین فرم قبلی رو خونده و به اون مراجعه کنیم.
فقط تو پیاده سازیش مشکل دلرم.
منتظر کمک شما دوستای گلم هستم.

Sajjad.Aghapour
جمعه 21 تیر 1387, 12:52 عصر
دوست عزیز.به نظر من پشته بهترین راه حله.البته از دوتا پشته باید استفاده کنید.یکی برای back و یکی برای forward .فکر می کنم browser ها هم از این روش استفاده می کنند.
االبته روش های دیگه ای هم می تونن مورد استفاده قرار بگیرن.مثل استفاده از لیست پیوندی یا همین روش خودتون.ولی پشته استانداردشه......

Xcalivorse
جمعه 21 تیر 1387, 13:05 عصر
بهترین روش اینه که یه جدول شامل ترتیب تمامی فرمهای باز شده درست کنی و به سازنده فرمت ارسال کنی

Amir Oveisi
جمعه 21 تیر 1387, 14:09 عصر
از کلاس Stack استفاده کنید.

top7news
جمعه 21 تیر 1387, 14:22 عصر
چطوری؟به نظرم بهترین راهشم listbox هست اما این listbox کجا باید تعریف بشه؟استفاده از item هاش هم توی فرمهای مختلف زیاد راحت نیست. یک مشکل دیگه این که کی اسم صفحه رو add کنم؟یعنیadd کردن تو کدوم رویداد باشه؟در ضمن من اسم صفحه ای رو به صورت string دارم.مثلا form2 . این string رو چطور به یک فرم تبدیل کنم؟یعنی فرمی رو بسازم که اسمش form2 باشه؟

yasercomeng
شنبه 22 تیر 1387, 05:22 صبح
به نظر اين مشكلتو حل كنه:

علیرضا مداح
شنبه 22 تیر 1387, 07:45 صبح
سلام دوست عزیز ،
نمونه پیاده سازی شده توسط LinkedList :
CodeProject - Navigational history (go back/forward) for WinForms controls (http://www.codeproject.com/KB/miscctrl/WinFormsHistory.aspx)
http://www.codeproject.com/KB/miscctrl/WinFormsHistory/History.gif

sinpin
شنبه 22 تیر 1387, 08:40 صبح
چه طوری میشه برای یک دکمه کدی درست کرد که شبیه دکمه Back , Forward ویندوز خودش تشخیص بده که از کدوم فرم اومده و باید به کدوم فرم برگرده ؟
اين مورد دقيقا بصورت توكار در WPF لحاظ شده است. اما اگر علاقه اي به آن نداريد همانطور كه آقاي مداح اشاره كردند بايد از يك ليست (مثلا يك ليست ژنريك از فرمها) استفاده كنيد.

علیرضا مداح
شنبه 22 تیر 1387, 20:00 عصر
اين مورد دقيقا بصورت توكار در WPF لحاظ شده است

NavigationService Class (http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.aspx)