PDA

View Full Version : مبتدی: با زدن دکمه ی خروج یا ضبدر بلا فرم بسته و وارد فرم دیگر شود



bazardeh
دوشنبه 23 اسفند 1389, 14:57 عصر
سلام خدمت دوستان

من می خواهم وقتی دکمه ی close یا همون علامت ضرب پنجره ، بقل maximize را زدم وارد پنجره ی دیگر مثل صفحه اصلی برنامه شود و دیگه برنامه بسته نشود

با تشکر

payman_xxp
دوشنبه 23 اسفند 1389, 15:17 عصر
سلام خدمت دوستان

من می خواهم وقتی دکمه ی ضبدر یا close بلای پنجره بقل maximize را زدم وارد پنجره ی دیگر شود

با تشکر

سلام
در ایونت formClosed فرم جاری ، فرم جدید رو showDialog کنید.
موفق باشید.

Hossenbor
دوشنبه 23 اسفند 1389, 15:35 عصر
من سوال شما رو درست متوجه نشدم شما وقتی فرم رو میبندید فرم دیگری باز میشود به دو قسمت کدتون مراجعه کنید یکی f11 رو فشار بدید به نقطه ورود برنامه میرسید خوب نگاه کنید که چندتا کد application.run هست اگر بیش از یکی بود دومی رو حذف کنید
حالت دوم بروی فرم بروید و f7 رو فشار دهید اگر اسم فرمم form1 است به دنبال متد private void form1‎_‎formclosed ...
بگردید نگاه کنید که توابعی مثلapplication.run... یاnew form2‎(‎‎)‎.show‎(‎‎)‎‎;‎ نیست اگر بود حذف کنید

bazardeh
دوشنبه 23 اسفند 1389, 16:41 عصر
با تشکر از دوستانی که منو راهنمایی کردن
اما من بد نوشتم منظور من اینه که وقتی دکمه ی close یا همون علامت ضرب پنجره ، بقل maximize را زدم وارد پنجره ی دیگر مثل صفحه اصلی برنامه شود و دیگه برنامه بسته نشود

Hossenbor
دوشنبه 23 اسفند 1389, 16:56 عصر
سلام دوست عزیز هنوز متوجه نشدم ولی چند نکته میگم شاید بدرد بخوره
start:
messagebox.show(متن ١);
stat2:
messagebox.show(متن ٢)
goto start;
و نکته دوم تو ایونت فرم کلوزینگ e یک گزینه داره یادم نیست اگر برابر false قرار بدی فرم بسته نمی شه

bazardeh
دوشنبه 23 اسفند 1389, 17:04 عصر
منظور من اینه که وقتی دکمه ی close یا همون علامت ضرب پنجره ، بقل maximize را زدم وارد پنجره ی دیگر مثل صفحه اصلی برنامه شود


کل برنامه ما از اجرا خارج نشه بلکه فقط در قسمت صفحه اصلی برنامه دکمه خروج از برنامه داشته باشیم و در پنجره های دیگر وقتی علامت ضرب پنجره (دکمه ی close) زده شد به صفحه اصلی برگردد
با تشکر از شما Hossenbor

Hossenbor
دوشنبه 23 اسفند 1389, 17:31 عصر
اهان دوست من الان متوجه شدم شما فرض کن اسم فرمی که میخواهی ظاهر شود form2 است برای اینکار در متدی که میخواهد اینکار انجام شود کد مقابل رو وارد کن
new form2().showdialuge();
اگه منظورت رو درست فهمیدم میخوای یک چیزی مثل messagebox درست کنی یک چیز دیگه هم از حرفات استنباط میشه اونم ویزارده یا یک چیزی شبیه به setup برنامه ها اگه درسته بگو تا کدشو بگم

arta.nasiri
دوشنبه 23 اسفند 1389, 17:43 عصر
سلام

دوست عزیز اگه منظورتنو متوجه شده باشم شما میخواین وقتی به طور مثال فرم دوم بسته میشه فرم اول فراخوانی بشه !

برای این کار کد زیر رو تو رویداد FormClosing فرم دوم بنویسین
private void newForm(object sender, FormClosingEventArgs e)
{
Form1 frm1 = new Form1();
frm1.Show();
}

bazardeh
دوشنبه 23 اسفند 1389, 22:50 عصر
سلام
دوستان عزیز ما 2 فرم داریم فرم 1 و فرم 2 وقتی در فرم 2 هستیم با زدن

http://up.vatandownload.com/images/63cm0yq1lukinptidio.jpg

به فرم 1 برگردد و برنامه بسته نشود

payman_xxp
سه شنبه 24 اسفند 1389, 08:00 صبح
سلام
دوستان عزیز ما 2 فرم داریم فرم 1 و فرم 2 وقتی در فرم 2 هستیم با زدن

http://up.vatandownload.com/images/63cm0yq1lukinptidio.jpg

به فرم 1 برگردد و برنامه بسته نشود

سلام
اگر در برنامه ای فرض کنیم فرم اصلی اجرا شده باشه:
Application.Run(new frmMain());
حالا در این فرم اصلی، هر فرمی دیگه ای صدا زده و باز بشه:
Form1 frm = new Form1();
frm.ShowDialog();
با زدن کلید X به فرم اصلی برمیگردید.

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

آیا از فرمهای پدر و فرزند استفاده کردید؟
آیا فرم1 فرم اصلی هستش؟
آیا فرم2 از فرم1 فراخوانی شده است؟
آیا...

موفق باشید.

ztx4
سه شنبه 24 اسفند 1389, 12:36 عصر
من این تفسیر رو کردم :

برنامه یک فرم پدر و یک فرزند داره.
در رویداد Close فرم پدر فرم فرزند فراخوانی می شه.
و در رویداد Close فرم فرزند فرم پدر فراخوانی می شه.

حالا من سعی کردم این برنامه رو بنویسم اما با نشد.با بستن فرزند از کل برنامه خارج می شه.

ztx4
سه شنبه 24 اسفند 1389, 12:43 عصر
تنها کاری که تونستم بکنم اینه :
اما یه مشکل داره !
دیگه هیچ وقت از برنامه خارج نمی شه:لبخند:



//Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication12
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
while (true)
{
Application.Run(new Form1());
Application.Run(new Form2());
}
}
}
}

MoS4k1
سه شنبه 24 اسفند 1389, 13:30 عصر
این کد شاید بدردت بخوره

Form1 frm1 = new Form1();
Form2 frm2 = new Form2();
while (frm1.ShowDialog() == DialogResult.OK && frm2.ShowDialog() == DialogResult.OK) ;

برای خروج هم از application.exit استفاده کن