PDA

View Full Version : نحوه ارتباط منوها و باتن ها در چند فرم



oranoos_mt
یک شنبه 01 خرداد 1390, 20:01 عصر
سلام
من دارم يه برنامه مينويسم كه تو برنامه تعداد 12تا فرم وجود داره
حالا اين 12 تا فرم هركدوم واسه خودش 40تا باتن و حدود 15تا منو داره.
من روي يكي از فرمها كدهامو نوشتم و ميخوام همين كدها روي فرم هاي ديگه دقيقا اجرا بشه. ولي نميدونم چطوري.
اينو بگم كه فرمها دقيقا همه مثله هم و همه دقيقا به اندازه هم باتن و منو دارن و اسم همه اونا هم دقيقا مثله هم ميباشن.
مثلا فرض كنيد تو form1 يه باتني مثلا btn13 كه كليك شد ميره روي فرم ديگه مثلا form7 . بعد كه form7 اومد بالا (load شد) همون باتن هارو داره كه مثلا btn13 رو زدم form4 بياد بالا
من نميخوام دوباره بيام روي تك تك باتن ها و منوها كد بنويسم. ميخوام از همون اولي استفاده كنم و فقط رويدادشو عوض كنم.
لطفا كمكم كنيد

zare69
دوشنبه 02 خرداد 1390, 08:59 صبح
سلام
میتونی دو تا کار انجام بدی
1-بیای کدها رو بذاری تو تابع و هرجا نیاز داشتی صداش بزنی این کارتو راحتر می کنی هم سرعت برنامه را میبره بالا

2- بیا اون دکمه ها ومنوهای که کد نوشتی را عمومی کنی وبعد تو فرمهای دیگه اونها را صدابزنی مثل این کد ( ) form1.button2.PerformClick

موفق باشی

tooraj_azizi_1035
دوشنبه 02 خرداد 1390, 10:41 صبح
سلام
دوست من شما باید یک فرم نمونه درست بکنی و بعد به پروژه Item جدیدی از نوع Inherited Form اضافه کنی فرم جدید از اولیه به ارث می ره، بعد برای هر فرم کد خاص خودش رو بنویس:
http://msdn.microsoft.com/en-us/library/ybsdta26(v=vs.80).aspx


To create a Windows Form inherited from an existing form by using the Inheritance Picker


From the Project menu, choose Add Windows Form.
The Add New Item dialog box opens.
Select the Inherited Form template, and name it in the Name box. Click the Add button to proceed.
The Inheritance Picker dialog box opens. If the current project already contains forms, they are displayed in the Inheritance Picker dialog box.
To inherit from a form in another assembly, click the Browse button.
Within the Select a file which contains a component to inherit from dialog box, navigate to the project containing the form or module you desire.
Click the name of the .exe or .dll file to select it and click the Open button.
This returns you to the Inheritance Picker dialog box, where the component is now listed, along with the project in which it is located.
Select the component.

Amir Oveisi
دوشنبه 02 خرداد 1390, 13:40 عصر
zare69
(http://barnamenevis.org/member.php?157935-zare69)- بیا اون دکمه ها ومنوهای که کد نوشتی را عمومی کنی وبعد تو فرمهای دیگه اونها را صدابزنی مثل این کد ( ) form1.button2.PerformClick


کاری کاملا اشتباه!
جدا از این که این کار با اصول برنامه نویسی شی گرا مغایرت داره، یک مشکل بزرگ هم داره. فرض کنید تو متد PerformClick مثلا چنین کدی نوشته شده:
this.Close();
حالا با این روشی که شما گفتید، این متد هر جا که فراخوانی بشه، this به همون شی form1 اشاره خواهد داشت و حتی اگر شما در فرم 4 هم این کد رو بنویسید، باز هم فرم1 بسته خواهد شد!
لطفا در مورد پاسخ هایی که میدید به خوبی فکر کنید بعد اقدام به ارسال پاسخ بکنید.

موفق باشید