من خودم همیشه از این روش استفاده می کنم
اول برنامم رو به طور کامل می نویسم ( بدون فرم login ) و به صورتی که فرو اصلی برنامم همون Form1 هستش
در آخر، یه فرم با نام Login درست می کنم و تو رویداد Load شدن Form1 این کد رو می نویسم :
using (var Log = new frmLogin())
{
Log.ShowDialog();
}
با این کار، قبل از نشون داده شدن Form1 ، فرم Login نشون داده میشه و تا وقتی که این فرم بسته نشه، Form1 نشون داده نمیشه
.
.
و تو فرم Login بعد از چک کردن username و Password در صورت درست بودنشون، فقط دستور
this.Close();
رو می نویسی!