PDA

View Full Version : تغییر مقدار پیش فرض Form



resident
دوشنبه 24 دی 1386, 23:24 عصر
سلام.

من یه فرمی طراحی کردم که همه فرمها به جای اینکه Form رو به ارث ببرن ، اون فرم جدید رو به ارث ببرن. چه تنظیماتی باید انجام بدم که این فرمم جایگزین Form بشه و دیگه نیازی نباشه من هر بار به صورت دستی نام فرم خودم رو جایگزین Form کنم و همه به صورت اتوماتیک اون فرم رو به ارث ببرن؟


یک سوال دیگه هم دارم و اون اینکه چه جوری میتونیم محتویات data grid view رو صفحه به صفحه ببینیم؟

متشکرم.

Mahdi.Kiani
دوشنبه 24 دی 1386, 23:53 عصر
سلام.

من یه فرمی طراحی کردم که همه فرمها به جای اینکه Form رو به ارث ببرن ، اون فرم جدید رو به ارث ببرن. چه تنظیماتی باید انجام بدم که این فرمم جایگزین Form بشه و دیگه نیازی نباشه من هر بار به صورت دستی نام فرم خودم رو جایگزین Form کنم و همه به صورت اتوماتیک اون فرم رو به ارث ببرن؟

متشکرم.

موقع استفاده از Add New Item به جای استفاده از windows Form برای اضافه کردن یک فرم جدید از گزینه inherited Form استفاده کنید. بعدش از لیستی که باز میشه میتونین مشخص کنید که از کدوم فرم ارث بری کنه

resident
سه شنبه 25 دی 1386, 07:12 صبح
موقع استفاده از Add New Item به جای استفاده از windows Form برای اضافه کردن یک فرم جدید از گزینه inherited Form استفاده کنید. بعدش از لیستی که باز میشه میتونین مشخص کنید که از کدوم فرم ارث بری کنه


آقای کیانی ممنون .
در روشی که شما فرمودید باز هم باید خودم دستی این کار رو بکنم .من دنبال روشی هستم که این کار به صورت اتوماتیک انجام بشه.
راستی چرا در وراثت تمام کنترلهای اون فرمی که فرم جدید اونو به ارث می بره روی صفحه قفل می شن؟ نمیشه اونا رو از این حالت در آورد و جابجا کرد؟

Mahdi.Kiani
سه شنبه 25 دی 1386, 08:30 صبح
آقای کیانی ممنون .
در روشی که شما فرمودید باز هم باید خودم دستی این کار رو بکنم .من دنبال روشی هستم که این کار به صورت اتوماتیک انجام بشه.


خیر . نیازی نیست. چون خودش اتوماتیک ارث بری میکنه.. شما مراحلتون را حتما اشتباه انجام دادین.. بگین چکار کردین؟



راستی چرا در وراثت تمام کنترلهای اون فرمی که فرم جدید اونو به ارث می بره روی صفحه قفل می شن؟ نمیشه اونا رو از این حالت در آورد و جابجا کرد؟



در وراثت معمولا کنترل هایی که عمل یکسانی دارند را در فرم base می ذارن و عملیات مربوط به اونا را توی همون فرم base می نویسند. به این طریق دیگه برای هر فرم child ای که از فرم base شما ارث بری می کنه، نیازی نیست که کد مربوطه را بنویسین
مثلا فرض کنید می خواین همه فرم ها تون دکمه ای جهت بستن فرم داشته باشند که خودتون اون دکمه را طراحی کردین.. حال کافیه که اون دکمه را درون فرم base قرار داده و برای اون کد




this.Close();



را بنویسین .. بدین ترتیب وقتی فرم های دیگه ارث بری می کنند شامل همین دکمه مورد نظر می باشند که با کلیک کردن بر روی اون فرم ارث برنده بسته خواهد شد

اما اگر کنترلی در فرم base دارین که ممکن است در فرم های child تغییر بکنه، میتونین خاصیت modifier اون کنترل را روی protected تنظیم کنید.
مقدار protected از مجموعه مقادیر modification به این معناست که هر آبجکتی که این خاصی را داشته باشه در خود فرم و در فرم های ارث برنده از این فرم، قابل شناسایی می باشد