PDA

View Full Version : سوال: من يه مشكل بزرگ دارم !!!!



ایمان مدائنی
یک شنبه 18 بهمن 1388, 21:15 عصر
من براي برنامه خودم يك فرم براي login درست كردم و بهش دستور دادم كه اگه اطلاعات درست بو د فرم اصلي باز بشه !
ولي فرم login باز ميمونه !
از دستور this.close() هم استفاده كردم كل برنامه رو ميبنده !
لطفا كمكم كنيد ؟؟؟؟:گریه:

AliRezaPro
یک شنبه 18 بهمن 1388, 21:32 عصر
برنامه تو آپلود کن ببینیم چیکار کردی

FastCode
یک شنبه 18 بهمن 1388, 21:33 عصر
Login L = new Login();
if (L.ShowDialog() == DialogResult.OK)
{
FormMain fm = new FormMain();
fm.ShowDialog();
}
این کد رو توی Program.Main بنویسید.
و توی فرم Login فقط DialogResult رو مقدار بدید و فرم رو ببندید.

ایمان مدائنی
دوشنبه 19 بهمن 1388, 23:22 عصر
Login L = new Login();
if (L.ShowDialog() == DialogResult.OK)
{
FormMain fm = new FormMain();
fm.ShowDialog();
}
این کد رو توی Program.Main بنویسید.
و توی فرم Login فقط DialogResult رو مقدار بدید و فرم رو ببندید.


--------------------------------------------------------
ميشه بيشتر توضيح بديد ؟؟؟

ozzy_mra
سه شنبه 20 بهمن 1388, 08:21 صبح
علت اینکه کل برنامتون بسته میشه اینه که فرم1 شما به عنوان فرم اصلی برنامتون شناخته شده و بست اون باعث بسته شدن کل برنامتون میشه واسه حل این مشکل شما باید برید فرم استارت آپ برنامتونو عوض کنید یه فرم جدید به برنامه اد کنید بعد تو بخش Program.cs تو خط سوم که فرم 1 رو new می کنه به جای فرم یک فرم جدید رو جای اون بنویس
بعد تو Load فرم دوم اول بنویس form2.hide() و بعد فرم 1 که همون فرم لاگینت هست رو show کن و اگه رمز ورود کاربرت درست بود از دستور this.close() استفاده کن

farn00sh
سه شنبه 20 بهمن 1388, 10:04 صبح
یک کلاس به صورت زیر ایجاد نمایید





class Login

{
public bool LoginToSystem(out long userID)
{
FrmLogin frmLogin = new FrmLogin();
frmLogin.ShowDialog();
userID = frmLogin.m_userId;
if (userID != -1)
return true;
return false;
}
}


Program class :








static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Login loginClass = Login();
long userID = -1;

if (loginClass.LoginToSystem(out userID))
{
if (userID == 0)
{
return;
}
else
{



frmMain frmMain = new frmMain();
Application.Run(frmMain);
}


}

}
}

farn00sh
سه شنبه 20 بهمن 1388, 10:08 صبح
در ضمن m_UseId یک متغییر Public در فرم login است که با کلیک بر روی دکمه login باید مقدار دهی شود.

farn00sh
سه شنبه 20 بهمن 1388, 10:10 صبح
در ضمن m_UserId یک متغییر public در فرم Login است که باید در هنگام کلیک بر روی دکمه login مقدار دهی شود

M.YasPro
سه شنبه 20 بهمن 1388, 10:26 صبح
سلام


this.Close();
Thread th = new Thread(new ThreadStart(OpenForm));
th.Start();
th.Join();




private void OpenForm()
{
frmMain frm = new frmMain();
frm.ShowDialog();

}

ghameshloe
سه شنبه 20 بهمن 1388, 11:14 صبح
از این کد استفاده کن
thise.hide();

mohammad_2039
سه شنبه 20 بهمن 1388, 11:15 صبح
من تو فرم لاگین ;()this.hide رو استفاده میکنم و در دکمه خروج application.exit تا کل برنامه و فرم لاگین که hide شده بسته بشه. فقط باید یه دکمه یا منو برای خروج بزاری و از فرم ضربدر بالای صفحه رو حذف کنی. زیاد حرفه ای نیست ولی کار راه اندازه. موفق باشی:لبخند:

ایمان مدائنی
سه شنبه 20 بهمن 1388, 18:26 عصر
ممنونم !
از this.hide(); استفاده کردم جواد داد !
ولي حالا چجوري برنامه رو ببندم ؟؟؟؟؟؟
وقتي دستور close رو ميدم بازم برنامه بازه !

FastCode
سه شنبه 20 بهمن 1388, 19:57 عصر
متوجه نشدم که خواسته بودید توضیح بدم.
من دقیقا" این کد رو توی Program.main دارم:

FrmUNPass unp = new FrmUNPass();
if (unp.ShowDialog() == DialogResult.OK)
{
Form_Main Form = new Form_Main();
UIServices.Frm_Main = Form;
Form.ShowDialog();
}

و این یکی رو توی FRMUNPass

Enabled = false; Application.DoEvents();
{
System.Threading.Thread.CurrentThread.Priority = System.Threading.ThreadPriority.Lowest;
System.Threading.Thread t = new System.Threading.Thread(ProfileManagement.Accounts List.Load);
Text = "Logging on, Please wait...";
t.Start(new System.IO.StreamReader("ProfileX.Bin").BaseStream);
WaitForThread(t);
System.Threading.Thread.CurrentThread.Priority = System.Threading.ThreadPriority.AboveNormal;
Text = "Done"; Application.DoEvents();
}
if (ProfileManagement.AccountsList.Current.LogOn(comb o2.Items[combo2.SelectedIndex].ToString(), textBox2.Text) == null)
{
Text = "Failure!";
}
if (ProfileManagement.AccountsList.Current.CurrentAcc ount != null)
{
//not available to public for customer's security
}
else
{
i++;
Enabled = true;
this.textBox2.Select(); this.textBox2.SelectAll();
}
if (i == 3) this.Close();
this.DialogResult = DialogResult.OK;
this.Close();

Sirwan Afifi
سه شنبه 20 بهمن 1388, 21:21 عصر
از همون this.close(); استفاده کن و Application.exit(); رو تو ایونت FormClosing فرمت بنویس

Amir_Developer
سه شنبه 04 مهر 1391, 12:03 عصر
من براي برنامه خودم يك فرم براي login درست كردم و بهش دستور دادم كه اگه اطلاعات درست بو د فرم اصلي باز بشه !
ولي فرم login باز ميمونه !
از دستور this.close() هم استفاده كردم كل برنامه رو ميبنده !
لطفا كمكم كنيد ؟؟؟؟:گریه:



این کد حتما جواب میده:فرض کنیم فرم اصلی form1 باشه


form1 f=new form1();
this.Visible = false;
f.ShowDialog();
this.close();

BEHZADnr
سه شنبه 04 مهر 1391, 12:29 عصر
سلام
برای بستن کل برنامه از دستور زیر استفاده کن
Environment.Exit(1);
موفق باشی