PDA

View Full Version : دوباره لود شدن فرم لوگو، فرم لاگین



azitaj
چهارشنبه 03 تیر 1394, 12:26 عصر
سلام دوستان لطفاَ راهنمایی کنید

یه برنامه دارم وقتی که اجراش میکنم توی فرم لاگین ،رمز عبوروپسورد وارد میکنم دوباره برنامه از اول لود میشه (بازهم فرم لوگو وفرم لاگین برام میاره)
لطفا راهنمایی کنیدکه چطوری درستش کنم

samin_panahi
چهارشنبه 03 تیر 1394, 12:30 عصر
سلام
فرم لوگو رو توی program.cs لود کن
بعد بیا فرم لاگین رو از توی فرم لوگو لود کن
یه چیز تو این مایه ها

azitaj
چهارشنبه 03 تیر 1394, 12:44 عصر
سلام خسته نباشید
نشد

alireza264
چهارشنبه 03 تیر 1394, 12:45 عصر
سلام دوستان لطفاَ راهنمایی کنید

یه برنامه دارم وقتی که اجراش میکنم توی فرم لاگین ،رمز عبوروپسورد وارد میکنم دوباره برنامه از اول لود میشه (بازهم فرم لوگو وفرم لاگین برام میاره)
لطفا راهنمایی کنیدکه چطوری درستش کنم

مشکلت اینه که فرم ها رو close نکردی این فرم ها رو بعنوان ورودی به فرم منو هات پاس کن و اونجا ببندشون
فرم منوهات رو اینجوری تغییر بده

public partial class Form3 : Form
{
public Form3(Form frm)
{
InitializeComponent();
frm.Close();
}



و اینجوری از فرم لاگین فراخوانیش کن


Form3 frm3 = new Form3(this);
frm3.ShowDialog();

azitaj
چهارشنبه 03 تیر 1394, 12:57 عصر
حالا اصلا نه فرم لاگین نمایش میده نه فرم لوگو رو

samin_panahi
چهارشنبه 03 تیر 1394, 13:07 عصر
سلام خسته نباشید
نشد
ممنون
می دونید اینکه دوباره میاد واسه اینه که شما توی فرم لود لاگین اومدی دوباره فرم لوگو رو گذاشتی
هر بار که میاد فرم لاگین رو لود کنه مجبور می شه لوگو رو هم نشون بده
تلاشتون رو بکنید اگه نشد امشب اومدم خونه یکاریش می کنیم، نهایاتا دیگه فردا :)
بجز این بازم مشکلی باقی مونده؟

alireza264
چهارشنبه 03 تیر 1394, 13:12 عصر
حالا اصلا نه فرم لاگین نمایش میده نه فرم لوگو رو
متوجه شدم چیکار کردی اون یه مثال بود شما اونا تو سازنده فرم نذار بلکه بذارشون توی رویداد کلیک فرم لاگین
من همین روشو انجام میدم درست کار میکنه
لطفا اسم فرم ها رو به ترتیب اجرا بنویس تا بهت بگم
. کدوم فرم توی program.cs لود میشه
مثلا فرم لاگین تو program.cs و فرم لوگو توی فرم لاگین و فرم منو توی فرم لوگو



private void buttonOK_Click(object sender, EventArgs e)
{
Form3 frm3 = new Form3(this);
frm3.ShowDialog();
}

azitaj
چهارشنبه 03 تیر 1394, 14:17 عصر
فرم 1 توی program.cs
فرم1 (فرم لوگو -فرم لاگین)

alireza264
چهارشنبه 03 تیر 1394, 14:38 عصر
فرم 1 توی program.cs
فرم1 (فرم لوگو -فرم لاگین)
سلام
با فرض اینکه فرم 1 همون فرم منوها باشه اما اول می خوای فرم لوگو بعد فرم لاگین و بعد فرم1 لود بشه

فرم لوگو برای چند ثانیه باز میشه و بعد یسته میشه وفرم لاگین باز میشه و در صورت تایید رمز فرم1 باز میشه
ابتدا باز شدن فرم از درون همدیگه رو پاک کن
program.cs رو اینجوری تغییر بده

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

Application.Run(new LogoForm());
Application.Run(new LoginForm());
Application.Run(new Form1());


}



حالا در تایمر فرم لوگو اینو بنویس و چون تایمر در هنگام Enable شدن رخدادشو انجام میده از متغیر Show استفاده شده تا در اجرای دومش فرمو ببنده

bool show = true;
private void timer1_Tick(object sender, EventArgs e)
{
if (!show )
this.Close();
show = false;
}


در رخداد کلید تایید فرم لاگین هم اینو بنویس

private void buttonOK_Click(object sender, EventArgs e)
{
this.Close();
}

به این ترتیب با بسته شدن هر فرم ، فرم بعدی باز میشه

azitaj
چهارشنبه 03 تیر 1394, 14:59 عصر
ممنون درست شدولی وقتی show.falseبرداشته بشه فرم لوگوکامل تر اجرا میشه در غیر این صورت یه لحظه فرم لوگو نمایش داده میشه بعدش فرم لاگین میاد

bool show = true;
private void timer1_Tick(object sender, EventArgs e)
{
if (!show)
this.Close();
//show = false;

alireza264
چهارشنبه 03 تیر 1394, 15:34 عصر
ممنون درست شدولی وقتی show.falseبرداشته بشه فرم لوگوکامل تر اجرا میشه در غیر این صورت یه لحظه فرم لوگو نمایش داده میشه بعدش فرم لاگین میاد

bool show = true;
private void timer1_Tick(object sender, EventArgs e)
{
if (!show)
this.Close();
//show = false;




زمان timer رو بیشتر کن

// زمان تایمر 5 ثانیه
timer1.Interval = 5000;


یه نکته رو هم فراموش کردم اگه فرم لاگین به هر دلیلی بسته بشه بازم فرم 1 لود میشه.بنابراین یک کلاس static تعریف کن

public static class Class1
{
public static bool Run_Project = false;
}


program.cs رو اینجوری تغییر بده

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

Application.Run(new LogoForm());
Application.Run(new LoginForm());
if(Class1.Run_Project) Application.Run(new Form1());


}


در رخداد کلید تایید فرم لاگین هم اینو بنویس


private void buttonOK_Click(object sender, EventArgs e)
{
Class1.Run_Project = true;
this.Close();
}

Mahmoud.Afrad
چهارشنبه 03 تیر 1394, 20:01 عصر
نمیدونم دوستان چه اصراری دارند هر مشکلی رو با تایمر حل کنند!

azitaj (http://barnamenevis.org/member.php?343114-azitaj) بهتره کد بزاری تا مشکلت حل بشه. هیچ کس از کدی که شما نوشتی خبر نداره که بخواد مشکلشو حل کنه. کد کلاس program و کد جایی که لاگین انجام میشه و همچنین لوگو ایجاد میشه.

alireza264
چهارشنبه 03 تیر 1394, 22:22 عصر
نمیدونم دوستان چه اصراری دارند هر مشکلی رو با تایمر حل کنند!

azitaj (http://barnamenevis.org/member.php?343114-azitaj) بهتره کد بزاری تا مشکلت حل بشه. هیچ کس از کدی که شما نوشتی خبر نداره که بخواد مشکلشو حل کنه. کد کلاس program و کد جایی که لاگین انجام میشه و همچنین لوگو ایجاد میشه.

سلام لوگو معمولا بعد از نمایش چند ثانیه بعد اتومات بسته میشه .اگه شما روشی دارید که بدون تایمر اینکارو میکنه خوشخال میشم بدونم