نمونه سازی فرم در c#

kerberos2023

عضو جدید
سلام
یه برنامه سی شارپ دارم که شامل 3 تا فرمه
فرم 1 فرم اصلی برنامه است و با زدن یک کلید توی این فرم یک نمونه از فرم 2 ساخته شده و فرم 2 باز میشود
توی فرم 2 با زدن یک کلید یک نمونه از فرم 3 ساخته شده و باز می شود
حالا می خوام توی فرم 3 با زدن یک کلید یک مقدار تکست از این فرم به فرم 2 که قبلاً نمونه سازی شده بفرستم و این فرم (فرم 3) بسته بشه ولی نمیدونم که نمونه ساخته شده از فرم 2 رو چه جوری پیدا کنم و بهش دسترسی داشته باشم
لطفاً اگه کدشو بلدین برام بذارین
ممنون
 

turboogle

متخصص برنامه نویسی #C
سلام دوست عزيز.واسه اين كار موقعي كه مي خواي از فرم 2 به 3 بري از يان كد استفاده كن:
form f=new form3();
this.hide();
form3.showdialog();
this.show();
توجه كن به ترتيب كد ها.اول فرم 2 رو مخفي ميكنم.بعد فرم 3 رو نمايش ميدم.من از يه تابع استفاده كردم پس كنترل برنامه به اون تابع ميره و بعد از اتمام كار اون تابع showdialog اولين كاري كه انجام ميشه تابع نمايش فرم 2 هست.showdialog از زمان نمايش فرم3 تا بسته شده فرم 3 ادامه داره.
------------------------------------اجرا كن و نتيجه رو ببين.----------------
خوب توي فرم 2 يه متغيير public static تعريف كن و در فرم 3مقدار تكست باكس رو توي اون بريز.
به اين شكل:
form2.variableNmae=txt.text
------------------------------
توي فرم 2 براي دسترسي به متغيير ديگه مشكلي نداري.
-----------------------------------------------------
تنها نكته قضيه تو اينه كه بعد از بسته شدن فرم 3 به متغيير هاش دسترسي نداري چون تابع مخربش فراخواني ميشه.
براي همين كار بايد متغيير رو جايي تعريف كنيم كه بعد از بسته شدن فرم 3 بتونيم دستكاريش كنيم.
فرم 2 رو انتخاب كردم چون طي اين روال مخفي ميشه و بسته نميشه.
----
حالا اگر يه كلاس مستقل كاري داشته ديگه نيازي به كد ها نبود و........
 

kerberos2023

عضو جدید
سلام دوست عزيز.واسه اين كار موقعي كه مي خواي از فرم 2 به 3 بري از يان كد استفاده كن:
form f=new form3();
this.hide();
form3.showdialog();
this.show();
توجه كن به ترتيب كد ها.اول فرم 2 رو مخفي ميكنم.بعد فرم 3 رو نمايش ميدم.من از يه تابع استفاده كردم پس كنترل برنامه به اون تابع ميره و بعد از اتمام كار اون تابع showdialog اولين كاري كه انجام ميشه تابع نمايش فرم 2 هست.showdialog از زمان نمايش فرم3 تا بسته شده فرم 3 ادامه داره.
------------------------------------اجرا كن و نتيجه رو ببين.----------------
خوب توي فرم 2 يه متغيير public static تعريف كن و در فرم 3مقدار تكست باكس رو توي اون بريز.
به اين شكل:
form2.variableNmae=txt.text
------------------------------
توي فرم 2 براي دسترسي به متغيير ديگه مشكلي نداري.
-----------------------------------------------------
تنها نكته قضيه تو اينه كه بعد از بسته شدن فرم 3 به متغيير هاش دسترسي نداري چون تابع مخربش فراخواني ميشه.
براي همين كار بايد متغيير رو جايي تعريف كنيم كه بعد از بسته شدن فرم 3 بتونيم دستكاريش كنيم.
فرم 2 رو انتخاب كردم چون طي اين روال مخفي ميشه و بسته نميشه.
----
حالا اگر يه كلاس مستقل كاري داشته ديگه نيازي به كد ها نبود و........
سلام
من میخوام بدونم که از توی فرم 3 چه جوری می تونم به نمونه ساخته شده از فرم 2 دسترسی داشته باشم؟؟؟؟
من با این دستور فرم 2 رو می سازم که این فرم حاوی یه تکس باکسه
Form2 frm2=new Form2();
frm2.show();
حالا می خوام از توی فرم 3 به frm2.txtdate دسترسی داشته باشم با چه دستوری این کار انجام میشه؟؟؟؟؟
 
آخرین ویرایش:

turboogle

متخصص برنامه نویسی #C
سلام دوست عزيز.
شما وقتي توي فرم 3 هستيد فرم 2 شما مخفيه.يعني ابجكتي از اون موجوده.
خوب مقدار تكست رو توي يه متغيير بريزد كه عمومي باشه.
نام فرم .نام متغيير عمومي
 

kerberos2023

عضو جدید
سلام دوست عزيز.
شما وقتي توي فرم 3 هستيد فرم 2 شما مخفيه.يعني ابجكتي از اون موجوده.
خوب مقدار تكست رو توي يه متغيير بريزد كه عمومي باشه.
نام فرم .نام متغيير عمومي
بازم سلام دوست عزیز
ببین فرم 3 من یه تقویم شمسی که می خوام با دابل کلیک روی هر تاریخ این فرم بسته بشه و تاریخ انتخاب شده توی تکس باکس مربوط به تاریخ در فرم 2 قرار بگیره ولی نمی دونم چطوری به تکس باکس فرم 2 توی فرم 3 دسترسی داشته باشم.
اون روشی که شما گفتید درسته و کار می کنه ولی مشکلش اینه که تاریخ مورد نظر توی یه متغیر می ره نه توی تکس باکس به همین خاطر اگه بخوام تکس باکسو از متغیر پر کنم بازم یا باید از فرم 3 به تکس باکس فرم 2 دسترسی داشته باشم و یا بعد از انتقال تاریخ به متغیر فرم 2 مقدار این متغیر رو بریزم توی تکس باکس (این یعنی تکس باکس به طور دستی باید مقدار دهی بشه که برای کاربر چندان خوشایند نیست) وگرنه هنگام بسته شدن فرم تقویم تاریخ مورد نظر توی متغیر سراسری فرم 2خواهد بود نه توی تکس باکس فرم 2
در ضمن من نمی خوام فرم 2 بسته بشه فقط فرم 3 باز و سپس بسته میشه
 
آخرین ویرایش:

turboogle

متخصص برنامه نویسی #C
اينو ببين
 

پیوست ها

  • varApp.zip
    530.4 کیلوبایت · بازدیدها: 0

Similar threads

بالا