PDA

View Full Version : سوال: دسترسي به اجزا يک فرم از يک فرم ديگر



mr.hamidmoayeri
دوشنبه 30 شهریور 1388, 10:00 صبح
با سلام خدمت دوستان عزيز
من مي خوام به اجزا يک فرم از طريق يک فرم ديگر دسترسي داشته باشم .
براي مثال من در فرم1 هستم و فرم1 Visible=false وفرم2 Visible=True حال من در فرم2 يک دکمه دارم که از قبل visible=False حال مي خوام با ظاهر شدن فرم2 اين دکمه نيز Visible=Trueبشود البته کدهاي لازم بايد در فرم1 نوشته شود .
البته من با تعريف يک شي از فرم 2 و دسترسي به اين فرم مشکلي ندارم فقط نمي تونم به اشيا موجود در فرم2 دسترسي داشته باشم .
قبلا از همکاريتون تشکر مي کنم .

hamidinejad
دوشنبه 30 شهریور 1388, 10:04 صبح
از خاصيت مولتي فرم استفاده كنيد

atryad
دوشنبه 30 شهریور 1388, 10:09 صبح
با سلام
هر شی رو که میخوای بهش دسترسی پیدا کنی باید به صورت عمومی تعریف بشه
یعنی خاصیت Modified اونو public قرار بدی

Vahid_moghaddam
دوشنبه 30 شهریور 1388, 10:24 صبح
بهتره به جای public کردن کنترل ها، برای دسترسی به کنترل ها از Property های public استفاده کنید. مثل ساده:


public string Text
{
get { return this.TextBox.Text;}
set {this.TextBox.Text=value;}
}

atryad
دوشنبه 30 شهریور 1388, 10:34 صبح
دوستان من هم برای دسترسی مشکل داشتم
آخه بعد از public کردن به شی دسترسی پیدا میکردم اما نمیتونستم مقدار یا خصوصیات اونو تغییر بدم
اگه دوستمون Vahid_moghaddam بیشتر توضیح بدن ممنون می شم
با تشکر

Vahid_moghaddam
دوشنبه 30 شهریور 1388, 10:46 صبح
public کردن کنترل ها اشکالی از نظر اجرا به وجود نمیاره. اما به خاطر رعایت شی گرایی مناسب تره که اشیا فقط چیزهایی رو درباره هم بدونن که به اونها احتیاج دارن. در مثالی که زدم، TextBox دلیلی نداره که public باشه، شما وقتی از خاصیت Text که در فرم شامل TextBox تعریف شده، استفاده می کنید، با به نوعی پیغام دادن به TextBox به خاصیتی که از TextBox لازم دارید (در اینجا Text) دسترسی پیدا می کنید.

اَرژنگ
دوشنبه 30 شهریور 1388, 10:54 صبح
طرز تفکر شئیگرای نمیگه دسترسی، میگه درخواست!
به جایه اینکه فکر کنید به خصوصیات یک شئی دسترسی (دست اندازی) کنید، فکر کنید که لازم دارید ازش درخواست کنید، بعدش هم اینکه شئی چگونه درخواست گرفته شده را بررسی و انجام بده را در همان شئی پیاده کنید.
به این شکل مقدار کدنویسیتان را کمتر میکنید و مقدار منطق برنامه را به جایه اینکه در جاهایه مختلف پخش کنید در یک قسمت که مربوطش هست تمرکز میکنید.

Vahid_moghaddam
دوشنبه 30 شهریور 1388, 19:01 عصر
طرز تفکر شئیگرای نمیگه دسترسی، میگه درخواست!
به جایه اینکه فکر کنید به خصوصیات یک شئی دسترسی (دست اندازی) کنید، فکر کنید که لازم دارید ازش درخواست کنید


سلام.
قبلن توی یه تاپیک دیگه شبیه به این بحث مطرح بود. شما علاقه خاصی دارید به ایراد گرفتن از بقیه! حالا این ایراد ها به کلمه ها گرفته می شه. چون شما خیلی روی این قضیه حساسیت دارید به لینک زیر نگاه کنید. این لینک سایت WindowsClient هست و وابسته به مایکروسافت. حالا اگه به نظر شما توی اون سایت هم یک عده مبتدی تازه کار که چیزی از شی گرایی نمی دونند مشغول به کارند، یه بحث دیگه س. در این لینک گفته شده راه های مختلفی برای دسترسی به کنترل های فرم دیگه وجود داره و راهی که پیشنهاد کرده (البته نه به عنوان بهترین راه) اینه که کنترل public بشه. من شخصن این راه رو نمی پسندم اما حرفم اینه اینطور مته به خشخاش گذاشتن های بی مورد، چه فایده ای داره؟


http://windowsclient.net/blogs/faqs/archive/2006/05/22/how-do-i-access-a-textbox-on-one-form-from-another-form.aspx

اَرژنگ
دوشنبه 30 شهریور 1388, 19:42 عصر
سلام.
قبلن توی یه تاپیک دیگه شبیه به این بحث مطرح بود. شما علاقه خاصی دارید به ایراد گرفتن از بقیه! حالا این ایراد ها به کلمه ها گرفته می شه. چون شما خیلی روی این قضیه حساسیت دارید به لینک زیر نگاه کنید. این لینک سایت WindowsClient هست و وابسته به مایکروسافت. حالا اگه به نظر شما توی اون سایت هم یک عده مبتدی تازه کار که چیزی از شی گرایی نمی دونند مشغول به کارند، یه بحث دیگه س. در این لینک گفته شده راه های مختلفی برای دسترسی به کنترل های فرم دیگه وجود داره و راهی که پیشنهاد کرده (البته نه به عنوان بهترین راه) اینه که کنترل public بشه. من شخصن این راه رو نمی پسندم اما حرفم اینه اینطور مته به خشخاش گذاشتن های بی مورد، چه فایده ای داره؟


http://windowsclient.net/blogs/faqs/archive/2006/05/22/how-do-i-access-a-textbox-on-one-form-from-another-form.aspx

۱.ایراد گرفتن از بقیه نیست! ایراد گرفتن از روش است. اشکالاتی که این روش به بار میارد و اینکه کد کسی که هر چی را دستش رسیده پابلیک کرده را تا حالا مجبود شدید که تمیز کنید؟ اگر ایراد میگرم از تجربه ایراد میگیرم و نه به کسی بله به روشی که استفاده میشه.
۲.اگر به یکی یک روشی پیشنهاد میشه باید کمبودهاش را هم بهش گوشزد کنیم، بین برنامه نویس و کد نویس فرق داریم، همانطوری که اگر دکتر دوایی تجویز کنه که اشکالات دیگری بوجود میاره، اگر برنامه نویس روشی را تجویز میکنه باید اشکالاتش را هم گوشزد کند.
۳.ایکنه میپرزم دلیلش این نیست که به کسی ایراد میگیرم ولی اینکه درک نمیکنم که کسی چطوری میتونه روشی را که خودش نمیپسنده به دیگران بگه؟ مگر دیگران حق دانستن اینکه روش درست چی هست را ندارند؟
۴.اینکه مبتدیکار هستند باعث نمیشه که باهاشان مثل اینکه نفهم هستند رفتار کنیم، اگر کمبودی هست را بهشان میگیم که خودشان برایه ترقی خودشان اگر خواستند دنبالش برند.
۵.روشهایه اشتباه و ساده را بدانه گفتن اشکالاتشان نباید ترویج کرد.
۶.اینکه من گوشزد میکنم دلیلش این است که شاید حتی یک نفر از کنجکاویش شاید بیشتر تحقیق کند و از ما بیشتر پیشرفت کند، به جایه اینکه به سبد گمراه شده‌ها یکی دیگر اضافه کنیم.
۷.همیشه گمانم بر این است که کسی که سوال را میپرسه میخواهد بیشتر پیشرفت کند، وگرنه یک جواب یک خطی نوشتن و گفتن اینکه "پابلیکش کن" از گفتن اشکالات و یک اشاره به وجود راه‌هایه بهتر خیلی راحتر است. ولی سوال این است که دلیل اینکه به یک سوال جواب میدیم چیه؟ اینکه یکی را چشم بسته نگه داریم یا اینکه یکمقداری اطلاعات در اختیارش بزاریم که خودش تصمیم بگیره
۸.خودتان را بزارید جایه کسی که سوال میپرسه، دوست دارید که جوابی که میگیرید به پیشرفرتتان کمک کند یا اینکه فقط یک چیزی را هم بیاره و به تعداد زیردستان اضافه کند؟
۹.من به کسی ایراد نمیگرم، به روش ایراد میگیرم، ولی اگر به اینکه کاربران بهتر ندانند و در تاریکی نگه‌شان داریم رایج است ، از اینکه مثل گوسفند پیروی نمیکنم معذرت میخواهم، اگر یکی هم که شده بخاطر حرفهایه من پیشرفت کنه بازهم به انتقادهایی که میشنفم میارزه. به اندازه کافی کسان دیگری هستند که بیخیال یک جواب کوتاه و ناقص که بیشتر به کاربر لطمه میزنه میگند.

حالا شما بفرمائید ، کمبودهایه روش را نگیم بهتر است یا اینکه روشهایه بهتر را از همان اول یادشان بدیم؟

همانطوری که بالایه این سایت نوشته "مرجع تخصصی برنامه‌نویسان فارس زبان" ، جواب تخصصی بدیم یا جوابی که دست به بسرش کند و فوری از شرش خلاص بشیم؟



در مورد لینکی که فرستادید، بله روش ناقصی است، و کمبودهاش را نگفته.

Vahid_moghaddam
دوشنبه 30 شهریور 1388, 19:56 عصر
با تشکر از نکاتی که گفتید. ممنون از دقت نظرتون



همیشه گمانم بر این است که کسی که سوال را میپرسه میخواهد بیشتر پیشرفت کند


واقعا عالی می شد اگر اینطوری بود. البته شاید من یه مقدار بدبین به قضیه نگاه می کنم اما گاهی که سوال ها رو می خونم (نه در این تاپیک) و طلبکار بودن پرسشگر سوال که انگار اینجا افرادی وظیف دارن مشکلات اونها رو حل کنند، به نظرم می رسه که سوال پرسیده می شه تا یه چیزی سر هم بندی بشه و جواب داده بشه.

اَرژنگ
دوشنبه 30 شهریور 1388, 20:16 عصر
با تشکر از نکاتی که گفتید. ممنون از دقت نظرتون



واقعا عالی می شد اگر اینطوری بود. البته شاید من یه مقدار بدبین به قضیه نگاه می کنم اما گاهی که سوال ها رو می خونم (نه در این تاپیک) و طلبکار بودن پرسشگر سوال که انگار اینجا افرادی وظیف دارن مشکلات اونها رو حل کنند، به نظرم می رسه که سوال پرسیده می شه تا یه چیزی سر هم بندی بشه و جواب داده بشه.

وحیدجان،
همه جور آدمها هستند، منتها اشکالی که این طرز تفکر پیش میاره اینه که بعد از چند وقت آدم را دلسرد میکنه و از کمک به پیشرفت بقیه وازمیداره.
اونوقت کسانی هم که واقعاً به کمک میارزیدند هم جواب نمیگیرند.
بار منفی زیاد هست و قانون انتروپی هم میگه که بالاخره تمام کائنات هم نیست خواهد شد، ولی فعلا که ما هستیم باید برایه بالا بردن سطح بقیه مبارزه‌مان را انجام بدیم، چونکه فردا که ما نخواهیم بود یکی دیگر باید برایه بهتر شدن بقیه کوشش کند.

بعد از دیدن پستتان که در مورد پیغام فرستادن بود گفتم که من هم دو قرون به این بحث اضافه کنم. چیزی که یادم رفت در پستم بگم این بود که فرستادن پیغام، فرستادن پیغام درخواست است، و یک پیغام جواب از شئی بر میگرده.