PDA

View Full Version : مشکل کار با فرمهای mdi



mhs377
چهارشنبه 19 خرداد 1389, 23:42 عصر
با سلام
من یه فرم پدر دارم(mdicontainer) و چند فرم فرزند(mdichild)
وقتی میخام از فرم پدر یکی از فرمها را فراخوانی میکنم، فرم فرزند داخل فرم پدر اجرا نمیشه
کد زیر مربوط به فرم پدر:


frmAdd ad = newfrmAdd(account);
ad.MdiParent = this;
ad.Show();

اما این ارور رو میده


An unhandled exception of type 'System.StackOverflowException' occurred in System.Windows.Forms.dll

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

یه سوال دیگه هم داشتم
آیا میشه مثلا با استفاده از یه دکمه از یه فرم فرزند، یه فرم فرزند دیگه رو داخل mdicontainer فراخوانی کرد؟

super_sonic
پنج شنبه 20 خرداد 1389, 09:26 صبح
سلام
من اينجوري مينويسم اگه مشكلي داشت دوستان لطف كنن بگن
ميام اول يك كلاس check open form در فرمي كه ميخواد باز شه مينويسم كه فرم دو بار باز نشه.
اين كد رو زير { InitializeComponent مينويسم.
private static Form2
checkform = null;
public static Form2
CheckOpenForm()
{
if (checkform == null)
checkform = new Form2();
return checkform;
}
بعد توي رويداد form closing فرم 2 :
checkform = null;
بعد با اين دستو فرمم رو فراخواني ميكنم:
Form2 frmform = Form2.CheckOpenForm();
frmform.MdiParent = this;
frmform.Show();

mhs377
پنج شنبه 20 خرداد 1389, 09:53 صبح
ولی این چیزی که شما گفتید با چیزی که من میخام فرق میکنه
من وقتی برای دفه اول فرم رو باز میکنم، اون ارور رو میده

در ضمن میخاستم در مورد فراخوانی فرم فرزند از یه فرم فرزند دیگه بدونم
اگه اطلاعاتی در این باره دارید لطفا ذکر کنید
ممنون

mhs377
جمعه 21 خرداد 1389, 10:15 صبح
کسی نمیتونه جواب سوال ما رو بده؟
:عصبانی++:

super_sonic
شنبه 22 خرداد 1389, 08:37 صبح
من ارورت رو نميشناسم.
بايد دوستان ديگه كمك كنن.
در مورد صدا زدن فرمهاي child هم فكر ميكنم به فرم parent ربطي نداره وبه صورت عادي ميشه صدا بزني.

saeedalg
شنبه 22 خرداد 1389, 09:56 صبح
اصلا از يه فرم child ميخواي كدوم فرم child ديگه رو صدا بزني؟ اگر اينو ميدوني كه خب فرم childe مربوطه رو show كن،‌ وگرنه فكر كن ببين چي ميخواي.
در مورد erroret هم معنيش رو كه حتما ميدوني پس يعني داري يه چيزايي رو بينهايت بار ايجاد ميكني (فراخواني تودرتو داري انجام ميدي).

mhs377
شنبه 22 خرداد 1389, 17:26 عصر
با سلام مجدد
مشکلم این بود که وقتی فرم فرزند رو میساختم داخل فرم پدر قرار نمیگرفت
مشکلم رفع شد
متشکرم

mojdeh6583
دوشنبه 31 خرداد 1389, 01:04 صبح
با سلام مجدد
مشکلم این بود که وقتی فرم فرزند رو میساختم داخل فرم پدر قرار نمیگرفت
مشکلم رفع شد
متشکرم

خوب دوست گرامی مشکلت که برطرف میشه جوابش رو هم بگذار تا اگه دیگری هم مشکل شما رو داشت جوابشو بگیره.این همه راه اومدی بگی حل شد؟
همین؟

rus1362
دوشنبه 31 خرداد 1389, 02:34 صبح
خوب دوست گرامی مشکلت که برطرف میشه جوابش رو هم بگذار تا اگه دیگری هم مشکل شما رو داشت جوابشو بگیره.این همه راه اومدی بگی حل شد؟
همین؟

man in karo miknam
moghe baz kardan form sevom az form dovomm
:
formChild2 frm = new formChild2();
frm.mdiparent = this.mdiparent;
frm.show();

rus1362
پنج شنبه 03 تیر 1389, 04:06 صبح
oon error ham oond stemoon onvan kardan marboot be ijad ye halgheye namotenahi hast ke ijad shode.
yani form childteoon ro dorost kardin oon parameter ,ehtemaln tosh mige ye ehsari be ijad kardan form parent ham hast ke halghe binahayat mishe.