PDA

View Full Version : سوال: MDI NotePad



الهام جان نثار
یک شنبه 06 اردیبهشت 1388, 15:06 عصر
سلام
من با استفاده از VS C# 2005 یک MDI Notepad می نویسم که شبیه به MS Office 2000 است .
یک Container که در ابتدا صرفا یک منوی File دارد که شامل Itemهای New و Open و Exit است و با باز شدن اولین Child سایر منوها مثل Edit و View و.... اضافه می شود. و با بسته شدن آخرین Child مثل اولین باری که فرم Load شده است ، فقط منوی File داشته باشد.

دو تا مشکل دارم :
1. دسترسی به متدهایی که در MDI Parentتعریف شده اند و می خواهم که از آنها در MDI Child استفاده کنم.
2. در FormClosing مربوط به MDI Child ، به متغیری که به عنوان Counter در MDI Parent تعریف شده دسترسی داشته باشم.

حامد مصافی
یک شنبه 06 اردیبهشت 1388, 16:18 عصر
برای این کار یک منو روی فرم child قرار دهید و خصوصیت merge آیتم های آن را برابر با insert یا append قرار دهید. به این ترتیب وقتی فرم فرزندی باز شود منو های آن به منو های فرم والد افزوده می شوند.

1 - به این منظور تابع را در فرم والد به صورت عمومی تعریف کنید. در این حالت با فرض بر اینه نام تابع F1 و نوع فرم وارد Form1 است باید از کدی مانند کد زیر استفاده کنید:


(this.ParentForm as Form1).F1();

2- پاسخ این سوال مانند پاسخ پیشین است. متغیر Counter باید از نوع Public باشد و به کدی مانند کد فوق نیاز دارید.
مثال :

(this.ParentForm as Form1).Counter++;