PDA

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



reza69
شنبه 01 تیر 1392, 10:23 صبح
سلام
چگونه از خروج برنامه زمانی که فرم اصلی بسته می شود جلوگیری کنیم؟

reza69
شنبه 01 تیر 1392, 10:45 صبح
توضیح بیشتر اینکه من میخوام یه فرم لوگین طراحی کنم . وقتی فرم اصلی رو با کد میخوام ببندم ارور می ده.

mehrdad1991h
شنبه 01 تیر 1392, 11:07 صبح
حتما هم فرم لاگینتون فرم اصلیتونه ؟
فرم لاگین را باید فرزند بسازی ولی اول نمایشش بدی...

veniz2008
شنبه 01 تیر 1392, 11:09 صبح
سلام.
از کسی که تا این لحظه 516 تا پست داره و حدود 18 ماه از عضویتش میگذره بعدیه اینطوری سوال بپرسه.
این نحوه سوال پرسیدن مال کسیه که تازه وارد سایت شده.
کدت رو بزار، یه عکس از خطا بگیر، بگو فرم اصلی برنامت رو چی قرار دادی و ...
یه چیزی نشون کسی بده تا بتونه راهنماییت کنه. اینطوری که نمیشه دوست عزیز.

reza69
شنبه 01 تیر 1392, 11:34 صبح
سلام.
از کسی که تا این لحظه 516 تا پست داره و حدود 18 ماه از عضویتش میگذره بعدیه اینطوری سوال بپرسه.
این نحوه سوال پرسیدن مال کسیه که تازه وارد سایت شده.
کدت رو بزار، یه عکس از خطا بگیر، بگو فرم اصلی برنامت رو چی قرار دادی و ...
یه چیزی نشون کسی بده تا بتونه راهنماییت کنه. اینطوری که نمیشه دوست عزیز.
دوست عزیز سوالم واضحه اگه لازم بود توضیح بیشتر می ذاشتم شایدم من اشتباه میکنم اشکالی نداره حالا بگذریم
105959

danialafshari
شنبه 01 تیر 1392, 11:39 صبح
سلام
به این شکل استفاده کن ببین کارت راه میفته؟
this.Hide();
Form2 frm2 = new Form2();
frm2.ShowDialog();
this.Close();

reza69
شنبه 01 تیر 1392, 11:45 صبح
سلام
به این شکل استفاده کن ببین کارت راه میفته؟
this.Hide();
Form2 frm2 = new Form2();
frm2.ShowDialog();
this.Close();

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

veniz2008
شنبه 01 تیر 1392, 12:01 عصر
میتونید فرم مورد نظرتون رو در یک ترد جدید اجرا کنید و فرم اصلی رو ببندید :


private void btninput_Click(object sender, EventArgs e)
{
// اگر شرط برقرار بود
{

System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ShowMainForm));
t.Start();
this.Dispose();
}


}

private void ShowMainForm()
{
FrmMain frmmain = new FrmMain();
frmmain.ShowDialog();
}

pcseven
شنبه 01 تیر 1392, 12:37 عصر
ساده تر اینه که فرم اصلی را hide کنید!

Mahmoud.Afrad
شنبه 01 تیر 1392, 14:17 عصر
با اینکه خیلی تکراریه ولی انگار این سوال پایانی نداره. قبلا روشهایی گفته شده ، خودم هم روشهایی رو گفتم.
اولا که در فرم مجاز بودن کاربر رو باید با یک پراپرتی مشخص کنید که میتونید از DialogResult فرم استفاده کنید. در فرم لاگین بعد از بررسی نام کاربری و رمزعبور درصورتی که کاربر مجاز بود DialogResult فرم لاگین را Ok کنید:

public partial class FrmLogin : Form
{
public FrmLogin()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if ("username and password are correct")
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
}

خب حالا برای ترتیب نمایش، در کلاس Program ابتدا فرم لاگین را به صورت ShowDialog نمایش دهید. در صورتی که نتیجه لاگین ok بود فرم اصلی را نمایش بدهید:

static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);

FrmLogin login = new FrmLogin();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new Forms.FrmMain());
}
}