PDA

View Full Version : نحوه ایجاد فرم ورود



amir_pro
پنج شنبه 22 آذر 1386, 12:03 عصر
سلام به دوستان
توی فرم اول برنامه یک کلمه عبور از کاربر گرفته میشه و چک میشه که درست است یا نه اگه درست بود میره فرم دوم را نشان میده ولی وقتی توی فرم 2 دستور application.exit را می نویسم دوباره فرم اول را نشون میده
این کد فرم اول


if (Txtpass.Text == "")
{
FarsiMessageBox.MsgBox.ShowMessage(0, ".کلمه عبور وارد نشده است", "خطا", "موافقم",
"", "", MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
Txtpass.Focus();
}
else
{
cmd.Connection = con;
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@pass", Txtpass.Text);
cmd.CommandText = "Select * From Security Where Pass=@pass";
con.Open();
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Close();
con.Close();

FrmHome f2 = new FrmHome();
f2.ShowDialog();
}
else
{
dr.Close();
con.Close();

FarsiMessageBox.MsgBox.ShowMessage(0, ".کلمه عبور وارد شده معتبر نیست", "خطا", "موافقم",
"", "", MessageBoxButtons.OK, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
Txtpass.Focus();
Txtpass.SelectAll();
}
}


و اینم کد مربوط به close در فرم اول که در رویداد onclosing نوشتم


if (FarsiMessageBox.MsgBox.ShowMessage(0, "آیا مطمئن هستید؟",
"بازگشت به ویندوز", "بله", "خیر", "",
MessageBoxButtons.YesNo, MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign) == DialogResult.Yes)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}


و اینم مد مربوط به exit در فرم دوم


Application.Exit();

http://C:\Documents and Settings\Administrator\Desktop\Form1.bmp

dr_csharp
پنج شنبه 22 آذر 1386, 12:10 عصر
دوست عزیز اون قسمت از پروژتون رو بگذارین تا بررسی کنیم

amir_pro
پنج شنبه 22 آذر 1386, 12:23 عصر
http://rapidshare.com/files/76244748/Sherkat.rar

mr_moghimkhani
پنج شنبه 22 آذر 1386, 13:23 عصر
بعد از


f2.ShowDialog();


اینو بنویس شاید حل بشه


This.close()

amir_pro
جمعه 23 آذر 1386, 00:55 صبح
این کار هم نشد

amir_pro
جمعه 23 آذر 1386, 15:10 عصر
کسی از دوستان نمیتونه راهنمایی کنه؟ هر کاری می کنم نمیشه.
اگر کاربر داخل فرم 2 پیغامی را که به واسطه خروج از برنامه ظاهر می شود را پاسخ خیر بدهد فرم 1 نمایش داده می شود و اگر پاسخ بله بدهد از برنامه خارج می شود.
چرا وقتی خیر را انتخاب می کند فرم 1 نمایش داده می شود؟

newgoldenman
جمعه 23 آذر 1386, 23:26 عصر
وای خدای من! نزدیک به یک ساعت برنامتون رو زیر و رو کردم! دیگه داشتم نا امید میشدم، ولی آخرین چیزی که به ذهنم رسید، که هرگز فکرشم نمیکردم چنین اشتباهی رو مرتکب شده باشین، فراخوانی فرم FrmHome از داخل فرمFrmLogin هست.
شما برای فراخوانی این فرم، از متد ShowDialog استفاده کردی، که نباید از این استفاده کنی! شما تنها کاری که باید انجام بدی تا به خواستتون برسین، اینه که از متد Show استفاده کنی.
دقیقاً بدین ترتیب، اونجایی که داری:

FrmHome f2 = new FrmHome();
f2.ShowDialog();باید بدین صورت باشه:

FrmHome f2 = new FrmHome();
f2.Show();

موفق باشید...

amir_pro
شنبه 24 آذر 1386, 06:31 صبح
ممنون جناب newgoldenman - ولی میشه دلیلشا بگید که چرا نمیشه از showdialog استفاده کرد؟

newgoldenman
شنبه 24 آذر 1386, 13:52 عصر
ممنون جناب newgoldenman - ولی میشه دلیلشا بگید که چرا نمیشه از showdialog استفاده کرد؟

به زبان خیلی ساده، ShowDialog شبیه یک MessageBox هست. همونطور که شما وقتی MessageBox رو احضار میکنید، فرم برنامتون دیگه قابل استفاده نیست. هنگامی هم که با استفاده از متد ShowDialog فرمی رو احضار میکنید، فرم قبلیتون دیگه قابل دسترسی نیست. در واقع شما این فرم رو به صورت موقت احظار کردین، که یک Dialog ساده رو نشون کاربر بده، نه یک فرم با عمر نسبتاً طولانی! ولی با متد Show شما یک فرم با عمری طولانی به اندازه ی عمر برنامتون خواهید داشت!