PDA

View Full Version : سوال: باز کردن فرم به طور مکرر



morika
جمعه 28 آبان 1389, 19:10 عصر
سلام
راستش من این سوال رو قبلا پرسیدم اما یکی از مدیران به علت تکراری بودن پاکش کرد. قبلا جستجو کرده بودم ولی چیزی پیدا نکردم که مشکلمو حل کنه. بعداز اینکه پاک شد بازم کلی گشتم ولی مشکلم حل نشد. گفتم باز سوال کنم شاید اینبار پاک نشه.
من حدود 32 فرم تو برنامم دارم که تو همه این فرمها یه آیکن هست که باید این کد رو اجرا کنه:


Form computer = new computer();
computer.Show();

می خواستم ببینم چجوری میشه که این کد رو تو یه چیزی تعریف کنم که دیگه تو هر فرمی که خواستم اجرا بشه فقط صداش بزنم و دیگه هی این کد رو ننویسم.
بازم می گم من جستجو کردم ولی راستش چیزی پیدا نکردم.
ممون

kamran00f
جمعه 28 آبان 1389, 19:25 عصر
سلام
راستش من این سوال رو قبلا پرسیدم اما یکی از مدیران به علت تکراری بودن پاکش کرد. قبلا جستجو کرده بودم ولی چیزی پیدا نکردم که مشکلمو حل کنه. بعداز اینکه پاک شد بازم کلی گشتم ولی مشکلم حل نشد. گفتم باز سوال کنم شاید اینبار پاک نشه.
من حدود 32 فرم تو برنامم دارم که تو همه این فرمها یه آیکن هست که باید این کد رو اجرا کنه:


Form computer = newcomputer();
computer.Show();

می خواستم ببینم چجوری میشه که این کد رو تو یه چیزی تعریف کنم که دیگه تو هر فرمی که خواستم اجرا بشه فقط صداش بزنم و دیگه هی این کد رو ننویسم.
بازم می گم من جستجو کردم ولی راستش چیزی پیدا نکردم.
ممون

وقتی یه شیئ جدید از فرم computer میسازی یه instance جدید از این کلاس ساخته میشه. برای اینکه همون instance ای که قبلا داشتیو پیدا کنی اینجوری بنویس



computer form_computer;
foreach (Form f in Application.OpenForms)
if (f is computer)
form_computer = f;


از اینجا به بعد میتونی از form_computer استفاده کنی

morika
جمعه 28 آبان 1389, 19:53 عصر
کاری که گفتین انجام دادم ولی این پیغام خطارو میده(عکس)

kamran00f
شنبه 29 آبان 1389, 21:14 عصر
کاری که گفتین انجام دادم ولی این پیغام خطارو میده(عکس)
درسته درسته حق با تو هست یه چیزیشو یادم رفت بنویسم




computer

form_computer;
foreach (Form f inApplication.OpenForms)
if (f is computer)
form_computer = (computer)f;


یادم رفته بود f رو به یه شیئ از فرم computer تبدیل (cast) کنم.