سلام.
دوتا فرم داریم به نام های:
form1,form2
که فرم یک ،فرم startup هستش.
حالا از فرم یک ، فرم دو رو با دستور زیر لود می کنم:
کد:
form2 frm2 = new form2();
حالا سوال من: چطوری می تونم از فرم 2 به فرم یک و اجزا و اشیا اون دسترسی داشته باشم؟(فرم یکی که بازه ، نه فرم یکی که با new از کلاس فرم یک تعریف شده)
مشکلم حل شد:
کد:
foreach (Form frm in Application.OpenForms)
{
if (frm is Form1)
{
Form1 f1 = (Form1)frm;
f1.label1.Text = "Changed via Form2";
}
}
اما راه آسان تری نیست؟
دو تا راه که عموما استفاده میشه غیر از اونی که خودتون رفتین:
1-form1 رو به فرم2 بدید. یعنی مثلا یه تابع show جایگزین بنویسید برای فرم2 که یه متغیر از نوع فرم1 دریافت کنه. اونو داخل خودش ذخیره کنه. اونوقت موقع باز کردن فرم2 یه همچین دستوری میشه:fom2.show(this); i
2- یه متغیر سراسری تعریف کرد و فرم1 رو ریخت توش. البته این روش آسون تره ولی جالب نیست، بدرد پروژه های کوچیک و کم اهمیت میخوره.
من C# کار نیستم و نمیدونم چطوری میشه این کارو تو C# انجام داد.
کد:
اما راه آسان تری نیست؟
خصوصیت MODIFIFIERS کنترل PUBLIC ست کن همونی میشه که میخواهی
این هم نمونه
متاسفانه نمیتونم براتون اپلودش کنم!!
(۰۹-تير-۱۳۸۹, ۱۳:۳۰:۲۳)programer1389 نوشته است: [ -> ]کد:
اما راه آسان تری نیست؟
خصوصیت MODIFIFIERS کنترل PUBLIC ست کن همونی میشه که میخواهی
این هم نمونه
متاسفانه نمیتونم براتون اپلودش کنم!!
ممنون دوست عزیز. اما منظورم این نیست که!
دوتا فرم در نظر بگیر شما، خوب حالا از فرم اولی فرم دومی رو بازش کردیم ، حالا من میخوام از اون فرم دومی به فرم اولی که باز هستش(نه فرم اول تازه) دسترسی داشته باشم.به کمک دوستان چند تا راه پیدا کردم حالا شما یه راه دیگه ای بلدید بگید.

[code] حالا من میخوام از اون فرم دومی به فرم اولی که باز هستش(نه فرم اول تازه) دسترسی داشته باشم.[/
code]
خوب دوست عزیزمن متوجه شدم شما چی فرمودین به همین خاطر خواستم نمونه بزارم این چیزی که گفتم همونیه که شما میخواهید امتحانش کنید
سلام منم خوندم ولی تابعی که نوشتین FRM چی؟
از فرم دوم میخواهیم به فرم اولی دسترسی داشته باشیم
(۲۱-شهریور-۱۳۸۹, ۱۷:۴۹:۵۹)aydin_key نوشته است: [ -> ]سلام منم خوندم ولی تابعی که نوشتین FRM چی؟
از فرم دوم میخواهیم به فرم اولی دسترسی داشته باشیم
سلام
توسط حلقه ی foreach، تمام قرم های موجود در آرایه ی openForms در frm قرار میگرد(یکی یکی، مثل حلقه ی for)
سپس، توسط if ، کنترل میشه که frm، همان فرم 1 هست یا نه. اگه بود، شما با استفاده از متغیر f1 می تونید به فرم 1 ای که باز هست(نه فرم 1 جدید) و کنترل هایی که MODIFIFIERS = public دارند و .... دسترسی داشته باشید.
مفهوم رو رسوندم؟
فهمیدم ممنون!
من انجام دادم تو form1 یک لیبل گذاشتم و تو فرم دو تابع بالا رو تو evente clicke یک buttom نوشتم عمل نمیکنه برا label ایراد میگیره.
البته فرم text فرمو میشه عوض کرد.
لطفاً کمک کنید.از فرم یک فرم 2 رو show میکنم میخوام از اونجا هم یک تابع یا یک کاریرو بکه.
من اینو میخوام واسه اضافه کردن یک رکورد در فروم اولی از طریق ورود اطلاعات از فرم دوم.
در واقع میخوام وقتی تو فرم دوم هستم فرم اولیو hande کنم.
البته وقتی یک تابع رو که تغییری باید بده رو مینویسی ایراد زیر رو میده
Unable to cast object of type 'update1of2form.Form2' to type 'update1of2form.Form1'.
حل کردم منون بزودی سورس کاملشو رو سایت میزارم واسه دیگران مرسی
سلام.
در کل دسترسی به کل محتویات یک فرم در فرم دیگه از نظر اصول برنامه نویسی درست نیست. چون کپسوله بودن و امنیت کد رو از بین میبره.
شما باید در حد نیازتون به محتویات فرم دیگه دسترسی داشته باشید.
برای مثال اگر میخواید متن یه تکس باکس رو عوض کنید در فرم مورد نظر یه پروپرتی تعریف کنید که این کار رو براتون انجام بده. چون شما فقط میخواید متن تکس باکس رو عوض کنید نه چیز دیگه ای رو. پس لزومی نداره به اطلاعات دیگه ای غیر از متن تکس باکس دسترسی داشته باشید.