كلاس فرم پدر و فرزند
سلام يه راهنمايي خواستم
1-برنامه ي من يه فرم پدر داره كه منو استريپ داره به يه تول استريپ براي ADD,SAVE,DELETE,... فرمهاي فرزند اينو بگم كه هر لحظه فقط يه فرم چايلد فعال هستش
حالا من ميخوام كاري كنم كه اون دكمه هاي روي فرم پدر براي فرمهاي فرزند كار كنه يعني با يك كلاس برا فرم نوشته بشه. برا تمام فرمهاي فرزند نشه چند تا كد.
دكمه سيو يه اطلاعات رو ميفرسته به بانك برا ذخيره مطمعنا در تمام فرمها كارش ذخيره در بانك هستش. چطوري ميشه اينو پياده كردم كه هروقت فرم فرزند فعال باشه بفهمه كه دكمه ذخيره پدر زده شده و اون تابه ذخيره اجرا بشه
2-يه فرم سرچ دارم به صورت ديالوگ كه روي چندتا فرم فرزند فعال ميشه و با زدن روي دكمه اد ديالوگه اون مقدار بايد برگرده بشينه توي تكستي كه ديالوگ فراخواني شده
اينم اگه ميشه راهنمايي كنيد
باتشكر
5 پاسخ
من دقيقا تعريف ها رو بلدم اينترفيس منظورمه
سه تا جدول دارم a,b,c توي سه تا فرم فرزند
خوب مطمعنا اگه نخوام با اون تولبار كار كنم و براي هركدام از فرم هاي فرزند يكه باتن سيو بزارم بايد يك نمونه از انتيتي بسازم و اون متد ذخيره جدول رو صدا بزنم
حالا اگه با تولبار كار كنم چطور بفهمه كدام متد رو بايد بره صدا بزنه و از رو انتيتي بايد يه شي بسازه
خوب ActiveMdiChild رو ميشه بررسي كرد
شما باید اول ببینید که می تونید فرم فرزندی که فعال هست رو پیدا کنید
سلام به شما دوست عزیز
اگر شما بتونید فرم فرزندی رو که در حال حاضر فعال است رو به دست بیارید می تونید از راه حل زیر استفاده کنید.
- یک اینترفیس تعریف کنید که متدهایی رو که در فرم پدر هست رو داشته باشه مثلا SAVE رو داشته باشه.
- همه ی فرم های فرزند اون اینترفیس رو پیاده سازی کرده باشن یعنی همه دارای یه متد SAVE باشن.
- حالا وقتی که دکمه SAVE از پدر زده شد فرم فرزندی که فعال است را انتخاب می کنید و متد SAVE آن را صدا می زنید.
برای سوال دوم شما توی فرم دیالوگ یک مقدار رو به صورت فیلد یا پابلیک تعریف کنید که کاربر اگر مقداری داخل دیالوگ وارد کرد اون مقداره توی این فیلد پابلیک بشینه. بعد از این که دیالوگ صدا زده شد و مقدار توش وارد شد و دیالوگه بسته شد. با استفاده از اون مقدار پابلیک می تونید به داده دیالوگ دسترسی داشته باشید.
خب برای این کار اینجوری عمل می کنیم اول یه اینترفیس تعریف می کنیم
public interface IMyChildForm{ void save(); }
حالا باید توی فرم های فرزند بریم و توی کلاس فرم هرکدام بگیم که از این اینترفیس ما ارث بری می کنند. در این صورت شما مجبور هستید که برای هر فرم متد save رو پیاده سازی کنید.
بعد وقتی که بر روی save در فرم پدر کلیک کردید باید کدی شبیه به کد زیر بنویسید.
IMyChildForm f=ActiveMdiChild; f.save();