مشاهده نسخه کامل
: جابه جا كردن يك متغير بين چند فرم
سلام .
احتمالا سئوالم تكراريه.
مي خواستم بدونم كه چطور مي شه مثلا يك متغير ازنوع string يا يك آرايه يا هر چيز ديگه يي در يك فرم مقدار بگيره و در يك فرم ديگه بشه مقدارش رو گرفت و بررسي كرد يا حتي تغييرش داد.#c
ممنون
سلام.
سوالتون تکراریه خوب اگه میدونید لطفاً جستجو کنید.واسه خودتون نمیگم.واسه خودم میگم!!از بس سوالای تکراری جواب دادم!!
داخل فرم 1 متغیر رو به صورت زیر تعریف کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بالای فرم 1 یک متغیر از نوع فرم دوم تعریف کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بالای فرم دوم یک متغیر از نوع فرم اول تعریف کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا تو فرم لود فرم 1 بتایپ:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا اگه میخوای از متغیر فرم اول تو فرم دوم استفاده کنی کد زیر رو تو فرم دوم بتایپ:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
ممنون.يك بار جستجو كردم ديدم چيزاي بي ربط اومد ديگه نگشتم.
ضمنا راه ديگه يي نداره؟ من شنيده بودم كه بايد يك كلاس ساخت و با استفاده از اون متغير رو جا به جا كرد
sari-1369
27-06-2009, 23:59
جستجوی سایتو بی خیال ... از عمو گوگل استفاده کن .
به این صورت :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنون.پيدا كردم.
ولي جواب سئوال دومم رو نگرفتم.اگه ما 5 تا فرم داشتيم و چند تا متغير جا به جا مي شد يعني بايد همه رو تو هم ديگه new كنيم؟ يه كم يه جوراييه
sajjadlove
28-06-2009, 13:11
سلام.
سوالتون تکراریه خوب اگه میدونید لطفاً جستجو کنید.واسه خودتون نمیگم.واسه خودم میگم!!از بس سوالای تکراری جواب دادم!!
داخل فرم 1 متغیر رو به صورت زیر تعریف کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبالای فرم 1 یک متغیر از نوع فرم دوم تعریف کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبالای فرم دوم یک متغیر از نوع فرم اول تعریف کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا تو فرم لود فرم 1 بتایپ:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا اگه میخوای از متغیر فرم اول تو فرم دوم استفاده کنی کد زیر رو تو فرم دوم بتایپ:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدموفق باشید.
روشتون کاملا اشتباهه.با این روش شدیدا برخورد میشه چون اصول شی گرایی (در اینجا کپسوله سازی) رو زیرپا میگذاره.
تا اونجا که ممکن هست باید از public کردن یک متغیر خودداری کرد.
یک راه اینه که می تونید از property ها استفاده کنید .....
و یک راه دیگه هم استفاده از یک کلاس static هست.....
sajjadlove
28-06-2009, 13:16
ولي جواب سئوال دومم رو نگرفتم.اگه ما 5 تا فرم داشتيم و چند تا متغير جا به جا مي شد يعني بايد همه رو تو هم ديگه new كنيم؟ يه كم يه جوراييه
همون طور که گفتم شما می تونی از یک کلاس static استفاده کنی.به این صورت:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای این منظور از Configuration هم می تونید استفاده کنید.(Settings)
روشتون کاملا اشتباهه.با این روش شدیدا برخورد میشه چون اصول شی گرایی (در اینجا کپسوله سازی) رو زیرپا میگذاره.
تا اونجا که ممکن هست باید از public کردن یک متغیر خودداری کرد.
یک راه اینه که می تونید از property ها استفاده کنید .....
و یک راه دیگه هم استفاده از یک کلاس static هست.....
ممنونم دوست من...
من چون عجله داشتم و حصوله نوشتن فضای نام کلاس رو نداشتم!! فکر کردم شما میدونید....!!!
منظورم از فضای نام NameSpace یک کلاس جداگانه بود که در اینصورت اگه Public نشه از متغیر و کلاس نمیتونین استفاده کنین.
خوب شما اگه دوتا پروژه جداگانه داشته باشین آیا میتونین به این روشی که گفتین عمل کنین؟
static هم در همه موارد استفاده نمیشه.باید جواب سوال عمومی باشه.این تایپی که شما فرمودین فقط در یک پروژه و یک فرم استفاده میشه.
راستی روش درسته فقط عمومیه یعنی همه جا میتونی استفاده کنی.
خوب بی خیال شما اگه بخوای داخل فرم دوم از متغیر فرم 1 استفاده کنی بازم Static میکنی؟همیشه کپسول نیست بعضی وقتها پیکنیک هم هست!
در هر صورت ممنونم.
mahdi7610
28-06-2009, 19:54
سلام .
احتمالا سئوالم تكراريه.
مي خواستم بدونم كه چطور مي شه مثلا يك متغير ازنوع string يا يك آرايه يا هر چيز ديگه يي در يك فرم مقدار بگيره و در يك فرم ديگه بشه مقدارش رو گرفت و بررسي كرد يا حتي تغييرش داد.#c
ممنون
سلام
برای پاس دادن یک پارامتر از یک فرم به فرم دیگه شما باید ابتدا constructor فرم دوم را طوری تغییر بدید که مقدار بگیره .
تغییراتی که در فرم 2 باید داده شود .
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد زیر برای فرم 1 تا یک پارامتر را پاس دهد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشی :)
sajjadlove
28-06-2009, 20:55
ببخشید.ولی باید بگم.نمی دونم شما انتقادپذیر هستید یا نه.ولی قصد جسارت ندارم و فقط به اندازه ای که می تونم به ارتقاء سطح علمی کمک کنم فکر می کنم.
من چون عجله داشتم و حصوله نوشتن فضای نام کلاس رو نداشتم!! فکر کردم شما میدونید....!!!
خوب دلیل نمیشه که روش غلط رو آموزش بدید
خوب شما اگه دوتا پروژه جداگانه داشته باشین آیا میتونین به این روشی که گفتین عمل کنین؟
static هم در همه موارد استفاده نمیشه.باید جواب سوال عمومی باشه.این تایپی که شما فرمودین فقط در یک پروژه و یک فرم استفاده میشه.
راستی روش درسته فقط عمومیه یعنی همه جا میتونی استفاده کنی.
خوب بی خیال شما اگه بخوای داخل فرم دوم از متغیر فرم 1 استفاده کنی بازم Static میکنی؟همیشه کپسول نیست بعضی وقتها پیکنیک هم هست!
اگه توجه کنید من یه روش دیگه هم تحت عنوان استفاده از Property ها ارائه کردم.
در این روش تلفیقی از کدی که جناب mahdi7610 ارائه کردن و Property استفاده میشه.من نگفتم همه جا از static استفاده کنید.گفتم این هم یه روشه.
در خط پایین کدی که گذاشتم هم گفتم می تونید از Configuration یا AppSettings استفاده کنید که این هم فقط یه روشه.
اما در مورد اصل کپسوله و اصل پیکنیک: < D: >
نگاه کنید دوست عزیز.کدنویسی پیشرفته نیاز به دانستن چیزهای زیادی داره.استانداردهایی برای اون ارائه شده که encapsulation و information hiding هم از اون مستثنی نیستن و از اصول اساسی به حساب میان.نمیگم من کدنویسی پیشرفته بلدم ولی حداقل این چیزها رو رعایت میکنم...
امیدوارم شما و بقیه دوستان هم همینطوری یا حداقل بهتر از من باشید....
موفق باشید...
mahdi7610
28-06-2009, 21:10
سلام
همون طور که سجاد جان گفتند یک روش پاس دادن اطلاعات استفاده از property ها هستش . که در واقع کار اصلی property پاس دادن پارامترها بین فرم ها هستش .
در واقع اگه تعداد پارمترها بیشتر باشه بهترین راه استفاده از property ها هستش .
هنگام استفاده از property دیگه نیازی نیست constructor فرم 2 را تغییر بدیم . بلکه یک پراپرتی تعریف می کنیم که باعث می شه پارامترهایی از کلاس فرم 1 را دریافت کنه .
درسته یک برنامه را هر طوری که بخواهیم میتونیم بنویسیم اما در برنامه نویسی شی گرا باید اصول شی گرایی کاملا رعایت بشه .
موفق باشید :)
سلام.
از داداش مهدی و داداش سجاد وقعاً ممنونم یه چیزی به معلوماتم اضافه شد.:10::10::33:امیدوارم که دیگه از این اشتباهات نکنم. البته میدونستم پروپرتی چی بود ولی نمیدونم چرا استفاده نکردم شاید عجله کردم یا یادم رفت.:31:.
راستی انتقاد پذیر یعنی چی؟(ببخشید من زبان فارسیم ضعیفه(شاید یادم رفته(شایدم...))).
برای همه دوستان آررزوی موفقیت میکنم.این کنکور پاک مخمو دیوونه کرده.
mahdi7610
28-06-2009, 21:45
سلام.
از داداش مهدی و داداش سجاد وقعاً ممنونم یه چیزی به معلوماتم اضافه شد.:10::10::33:امیدوارم که دیگه از این اشتباهات نکنم. البته میدونستم پروپرتی چی بود ولی نمیدونم چرا استفاده نکردم شاید عجله کردم یا یادم رفت.:31:.
راستی انتقاد پذیر یعنی چی؟(ببخشید من زبان فارسیم ضعیفه(شاید یادم رفته(شایدم...))).
برای همه دوستان آررزوی موفقیت میکنم.این کنکور پاک مخمو دیوونه کرده.
علی جان همه ما اینجا هستیم تا داشته هامون را بزاریم و به نداشته ها برسیم .
کلا فلسفه این نوع فروم ها اینه که بتونیم اشکالات همدیگه را برطرف کنیم .
راستی انتقاد پذیر یعنی چی؟
ادم انتقاد پذیر ادمی هستش که همیشه با نقد شدن یک قدم در راه پیشرفت خودش برداشته .
موفق باشی :)
sajjadlove
28-06-2009, 22:09
از داداش مهدی و داداش سجاد وقعاً ممنونم یه چیزی به معلوماتم اضافه شد.[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]امیدوارم که دیگه از این اشتباهات نکنم. البته میدونستم پروپرتی چی بود ولی نمیدونم چرا استفاده نکردم شاید عجله کردم یا یادم رفت.[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
من هم خوشحال شدم که در اضافه شدن معلومات شما نقش داشتم.
البته من نباید این پست رو بدم.در حقیقت یه off-topic هستش.ولی حالا که زدم اینو بگم که به مطالعه دقیق کتابهای انگلیسی بپردازید و به فرومهای فارسی هم اکتفا نکنید....
موفق باشید....
ramin_mp4
18-07-2009, 11:24
بهترین راهش اینه که متغیرهایی رو که میخوای share کنی به صورت استاتیک تو یه کلاس جداگانه مثلاً Common بگذاری و از هر فرمی با نوشتن Common.strName به متغیرهات دسترسی پیدا کنی (در اینجا متغیر strName) ، امیدوارم متوجه شده باشی.
BILLY_Mgs
19-07-2009, 08:52
با اجازه اساتید یه راه هم من بگم! البته استاتیک اصلشه ولی میتونی مقدارشو توی یه فایل یا رجیستری سیو کنی و تو هر فرمی قبل از باز شدن مقدارو فرا بخونی .
یا علی!
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.