PDA

View Full Version : سوال: باز کردن پنجره ای(فرمی) کوچک بر روی برنامه اصلی



hamedjonjon
دوشنبه 30 مرداد 1391, 10:57 صبح
با سلام
اگر شما از Internet Explorer استفاده می کنید،با باز کردن Internet Option (که در تصویر زیر نشان داده شده است)
http://upload.iranvij.ir/image_mordad91/92653317083504561126_thumb.jpg (http://upload.iranvij.ir/viewer.php?file=92653317083504561126.jpg)
فرمی کوچک باز می شود که بر روی خود نرم افزار Internet Explorer قرار می گیرد، این فرم دو خاصیت جالب دارد:
1 - با باز شدن آن در حالی که نرم افزار Internet Explorer به طور کامل قابل رویت است اما نمی شود با هیچ قسمت از نرم افزار کار کرد.
2 - با کلیک بر روی هر قستی از نرم افزار Internet Explorer صدای هشداری پخش می شود( دینگ!!!) و رنگ فرم Internet Option نیز دو سه بار تغییر میکند.

از شما اساتید گرامی میخوام که برام توضیح بدید یک همچین فرمی رو چطور میتونم درست کنم؟

programerinfonet
دوشنبه 30 مرداد 1391, 11:06 صبح
دوست عزیز پنجره ی دومی یا همون فرم کوچیکتو انتخاب می کنی و بعد از قسمت properties خاصیت FormBorderStyle رو روی FixedDialog قرار میدی

hamedjonjon
دوشنبه 30 مرداد 1391, 11:13 صبح
من این کار رو امتحان کردم اما هیچ ربطی به چیزی که خواسته بودم نداشت!

دوستان لطفا کمک کنند!

Mahmoud Zaad
دوشنبه 30 مرداد 1391, 11:17 صبح
سلام
به جای اینکه فرم رو Show کنید، ShowDialog کنید:


Form1 f1=new Form1();

f1.ShowDialog();

hamedjonjon
دوشنبه 30 مرداد 1391, 11:37 صبح
ممنون
اما در این حالت هم وقتی فرم 2 نمایش داده میشه دیگه فرم 1 دیده نمیشه و تنها زمانی که فرم 2 ( که showDialog شده بود) بسته میشه فرم 1 ظاهر می شود
این مشکل رو چطور حل کنم؟؟

Mahmoud Zaad
دوشنبه 30 مرداد 1391, 11:44 صبح
ممنون
اما در این حالت هم وقتی فرم 2 نمایش داده میشه دیگه فرم 1 دیده نمیشه و تنها زمانی که فرم 2 ( که showDialog شده بود) بسته میشه فرم 1 ظاهر می شود
این مشکل رو چطور حل کنم؟؟
نه اینطور نیست مگر اینکه اندازه دوتا فرم یکی باشن. اگه فرم دومیه کوچیکتر باشه همینی میشه که می خواستی.

hamedjonjon
دوشنبه 30 مرداد 1391, 11:49 صبح
نه من همه نوعی امتحان کردم، نشد که نشد
این هم برنامه ام:
ShowDialog.zip (http://www.4shared.com/zip/5XoliXB4/WindowsFormsApplication15.html)
لطفا برنامه رو ببینید

veniz2008
دوشنبه 30 مرداد 1391, 12:02 عصر
سلام. شما اندازه فرم اول رو بذار 600*800 و اندازه فرم 2 رو بذار 500*500 . حالا فرم 2 رو بصورت زیر صدا بزن . در اینحالت فقط فرم 2 قابل استفاده هست و فرم 1 فقط نشون داده میشه:

Form2 frm2 = new Form2();
frm2.ShowDialog();

hamedjonjon
دوشنبه 30 مرداد 1391, 12:06 عصر
ممنون اما اگر برنامه ای که در بالا لینک اش رو گذاشتم ببینید متوجه خواهید شد که من دقیقا این کار ها رو انجام دادم اما فرم اول دیده نمیشه!!!
لطفا برنامه رو ببینید
دوستان لطفا کمک کنند

Mahmoud.Afrad
دوشنبه 30 مرداد 1391, 12:10 عصر
اون کدو توی لودفرم نذار. بذار توی یک باتن بعد امتحان کن.

hamedjonjon
دوشنبه 30 مرداد 1391, 12:16 عصر
ممنون
درست شد
ولی من در برنامه اصلی میخوام که فرم 1 باز شده و بلافاصله فرم 2 هم باز شود(یعنی مجبورم که کد را در فرم لود قرار بدم) در این صورت باید چیکار کنم؟؟

saman_h
دوشنبه 30 مرداد 1391, 13:34 عصر
سلام
بحای فرم لود از فرم اکتیو استفاده کن یا اینکه کد رو بذار داخل یک تایمر ، Interval تایمر رو روی 1 یا 2 ثانیه تنظیم کن و داخل فرم لود اونو اجرا کن
مشکلت حل میشه فک کنم

hamedjonjon
دوشنبه 30 مرداد 1391, 14:55 عصر
برای چی همچین چیزی میخوای؟ برای لاگین کردن؟
آره برای لاگین کردن میخوام

سلام
بحای فرم لود از فرم اکتیو استفاده کن یا اینکه کد رو بذار داخل یک تایمر ، Interval تایمر رو روی 1 یا 2 ثانیه تنظیم کن و داخل فرم لود اونو اجرا کن
مشکلت حل میشه فک کنم
راه حل هایی که saman_h گفت خوبه ولی به نظرم اصولی نیست! درسته؟

Farshid007
دوشنبه 30 مرداد 1391, 15:14 عصر
تو Shown بزار درست میشه:
private void Form1_Shown(object sender, EventArgs e)
{
new Form2().ShowDialog();
}

hamedjonjon
دوشنبه 30 مرداد 1391, 16:32 عصر
پس اصلا نیازی نبود که خاصیت FormBorderStyle فرم رو به FixDialog تغییر بدم!!!

Mahmoud.Afrad
دوشنبه 30 مرداد 1391, 16:47 عصر
اگر برای لاگین میخوای باید اولین فرمی که باز میشه فرم لاگین باشه پس به program.cs برو و نام فرم آغازین به فرم لاگین تغییر بده. بعد در دکمه لاگین(ورود) بعد از اینکه یوزرنیم، پسورد وروردی رو چک کردی و درست بود فرم اصلی رو نمایش بده و فرم لاگینو مخفی کن.


پس اصلا نیازی نبود که خاصیت FormBorderStyle فرم رو به FixDialog تغییر بدم!!!
نه مجبور نیستی ولی اگر میخوای اندازه فرم لاگین غیرقابل تغییر باشه بذار روی fixdialog باشه.

Farshid007
دوشنبه 30 مرداد 1391, 16:52 عصر
اگر برای لاگین میخوای باید اولین فرمی که باز میشه فرم لاگین باشه پس به program.cs برو و نام فرم آغازین به فرم لاگین تغییر بده. بعد در دکمه لاگین(ورود) بعد از اینکه یوزرنیم، پسورد وروردی رو چک کردی و درست بود فرم اصلی رو نمایش بده و فرم لاگینو مخفی کن.


نه مجبور نیستی ولی اگر میخوای اندازه فرم لاگین غیرقابل تغییر باشه بذار روی fixdialog باشه.
اقا اشتباه نکن
اگه از Program.cs فرم شروع نرم افزار را فرم اصلی بزاری اون وقت با بستن فرم لوگین کل برنامه بسته میشه
باید تو لود فرم اصلی فرم لوگین رو Using کنی

Farshid007
دوشنبه 30 مرداد 1391, 17:26 عصر
خوب چرا لقمه رو می پی چونید؟

مهرداد صفا
دوشنبه 30 مرداد 1391, 19:25 عصر
سلام

ممنون
درست شد
ولی من در برنامه اصلی میخوام که فرم 1 باز شده و بلافاصله فرم 2 هم باز شود(یعنی مجبورم که کد را در فرم لود قرار بدم) در این صورت باید چیکار کنم؟؟
قبل از نمایش فرم دوم فرم اول را نمایش دهید. برای مثال:

//IN THE NAME OF GOD
F2 = new Form();
this.BackColor = Color.Black;
this.WindowState = FormWindowState.Maximized;
this.Show();
F2.ShowDialog(this);