روش های زیر رو بکار ببر انشاء الله که جواب بگیری :
1- خوب به علت اینکه Form1 شما به صورت MainForm و فرمی که در ابتدای برنامه Run می شه که این اطلاعات در واقع در کلاس program تنظیم می شه شما زمانی که فرم دومی رو باز می کنین و فرم اول رو می بندین در واقع کل Application رو می بندین به همین علت برنامه بسته می شه ، در صورتیکه اگر کد زیر رو در فرم دوم و سوم به کار ببرید که MainForm نیستند دقیقا جواب می ده و هیچ مشکلی در برنامه پیش نمیاد در نتیجه باید Form اصلی رو فرم دیگری قرار بدین که در زمان بسته شدن فرم اول فرم بعدی به صورت صحیح نمایش پیدا کنه :
Form3 frm3 = new Form3();
frm3.Show();
this.Close();
2- روش دوم این هست که فرمی که می خواهید در ابتدای اجرای برنامه نمایش داده بشه رو در کلاس Program به صورت زیر و باز به صورت یک DialogBox نمایش بدین و در صورت صحیح بودن رمز الباقی کارها انجام و فرم اصلی برنامه نمایش داده بشه و در صورت صحیح نبودن Application رو Close کنه :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Appliction
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
new Form2().ShowDialog();
Application.Run(new Form1());
}
}
}