iyi yolu işlemek için: çocuk formdaki 'Giriş' butonuna İçinde
Login Log = new Login();
Log.ShowDialog();
bu var Bu, formunuzun başlamasından ÖNCE oturum açma işlemlerini gerçekleştirir (örneğin, Program.cs dosyasında ancak uygulama başlatıldıktan sonra). Oturum açma formunuza bir değişken ekleyin (Yetkilendirme testinizi geçip geçmediğini gösteren E. bir boole) ve yetkilendirme durumunun ne olduğunu görmek için formun kapatıldığını kontrol edin. Bayrak yanlış olarak ayarlanırsa, bir iade yapabilir veya Application.Exit() yapabilirsiniz ve kullanıcı ana formu asla görmeyecektir.
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
SomeLoginForm Login = new SomeLoginForm();
Login.ShowDialog();
if (!Login.HasPassedAuthorization)
{
MessageBox.Show("Sorry you failed to pass the test! I'm kicking you out now!");
Application.Exit(); // or do a "return;"
}
Application.Run(new Form1());
}
}
static class SomeLoginForm()
{
internal bool HasPassedAuthorization;
}
Lütfen Form Yükle olay işleyicinizin kalan kısmını göster. Orijinal Form1'inizi gizleyerek yeni bir tane oluşturup bunun yerine gösterdiğiniz gibi görünüyor. Muhtemelen Giriş formunu ana form olarak almalı ve gizlemelisiniz ve sadece oturum açma başarılı olursa Form1'i göstermelisiniz. –