بهار آموزش با تخفیف های شگفت انگیز توسینسو بهار آموزش با تخفیف های شگفت انگیز توسینسو
مانده تا پایان تخفیف
مشاهده دوره ها
0

باز ماندن فرم لاگین در حافظه در فرمهای سی شارپ

من به فرض دو تا فرم دارم یکی فرم لاگین و دومی فرم اصلی خب اگر اطلاعات فرم لاگین به درستی وارد شود فرم اولیه بسته و فرم اصلی باز میشه که از این کد استفاده می کنم :

this.Hide();
Form1 f = new Form1();
f.Show();

خب با این کار مشکلی پیش نمیاد اما فرم لاگین توی حافظه باقی میمونه ، راه حل چی هست؟؟؟؟ ممنون

پرسیده شده در 1395/08/22 توسط

7 پاسخ

1

خیر دوست عزیز، این کد جایگزین قسمت Application.Run داخل Program.cs میشه.

پاسخ در 1395/08/24 توسط
0

سلام ممنون اما از close دقیقا باید کجا استفاده کنم

هم اول دستور زدم و هم آخرش یعنی :

this.close();
Form1 f = new Form1();
f.Show(); 
یا
Form1 f = new Form1();
f.Show(); 
this.close();

به جای اینکه فرم لاگین رو ببنده فرم دوم رو می بنده

پاسخ در 1395/08/22 توسط
3

ببینید دوست عزیز، فرض کنید که فرمی با نام LoginForm و فرم دیگه ای با نام MainForm دارید که فرم اول برای ورود به برنامه و فرم فرم اصلی هست، حالا شما تو کلاس Program.cs و متد Main باید عملیات ورود رو انجام بدید و در صورت صحیح بودن کلمه عبور اجازه دسترسی به کاربر رو بدید، مثال:

var login = new LoginForm();

var result = login.ShowDialog();

if (result == DialogResult.OK)
{
    Application.Run(new MainForm());
}

برای فرم ورود هم کدی که نوشته میشه باید DialogResult رو بر اساس صحیح یا غلط بودن کلمه عبور برگردونه، ست کردن DialogResult داخل فرم به صورت خودکار باعث بسته شدن فرم میشه. فرض کنید یک Button با نام Login در فرم LoginForm داریم. تو رویداد Click این Button کدی مانند کد زیر نوشته میشه:

var username = UsernameTextBox.Text;
var password = PasswordTextBox.Text;

bool result = [true/false] // check username and password from database

if(result)
{
    this.DialogResult = DialogResult.OK;
}
else
{
    MessageBox.Show("نام کاربری یا کلمه عبور اشتباه است.");
}
پاسخ در 1395/08/23 توسط
2

سلام دوست عزیز

شما می تونید فرمتون رو در کلاس program به صورت public static تعریف کنید و دستورات کلاس program رو به صورت زیر تغییر بدید

    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
public static ACForm frm=new ACForm();      
  [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(frm);
        }
    }
پاسخ در 1395/08/22 توسط
آواتار . .
1

سلام دوست عزیز، به جای متد Hide از متد Close استفاده کنید.

پاسخ در 1395/08/22 توسط
0

ممنون فقط این تکه کد :

var login = new LoginForm();

var result = login.ShowDialog();

if (result == DialogResult.OK)
{
    Application.Run(new MainForm());
}

رو باید کجا و به چه صورت نوشت ... یعنی هر چی توی متد main از program.cs ست رو پاک کنم و این رو جایگزین کنم

پاسخ در 1395/08/23 توسط
0

ممنون دوست عزیز میشه کمی توضیح بدید راجع به کدهایی که نوشتید ...چون من مبتدی هستم کمی برام گنگ هستش اگر نمونه ای چیزی دارید بهم معرفی کنید ممنونم میشم

دقیقا این کلاس رو باید کجا استفاده کنم ؟؟؟ شرط صحیح یا غلط بودن ورودی تکست باکس ها رو باید کجا وارد کنم

متشکرم

پاسخ در 1395/08/22 توسط

پاسخ شما