Эван, пост слишком старый, я хотел бы дать вам хитрость, чтобы сделать это, если вы хотите показать экран-заставку / вход в систему и когда индикатор выполнения экрана-заставки получил определенное значение / или успешный вход в систему произошел и закрыл экран-заставку / вход в системузатем снова отобразите основную форму, frm-main будет формой запуска, а не frm-spalash
в frm-main
public partial class frmMain : Form
{
public frmMain()
{
frmSplash frm = new frmSplash();
frm.Show(); // new splash screen will shows
this.Opacity=0; // will hide your main form
InitializeComponent();
}
}
в frm-Splash
private void timer1_Tick(object sender, EventArgs e)
{
int cnt = progressBar1.Value;
switch (cnt)
{
case 0:
//Do sum stuff
break;
case 100:
this.Close(); //close the frm-splash
frmMain.ActiveForm.Opacity = 100; // show the frm-main
break;
}
progressBar1.Value = progressBar1.Value+1;
}
если вы используете его для формы входа
private void btlogin_Click(object sender, EventArgs e)
{
bool login = false;
//try your login here
//connect your database or whatever
//and then when it success update login variable as true
if(login == true){
this.Close(); //close the frm-login
frmMain.ActiveForm.Opacity = 100; // show the frm-main
}else{
//inform user about failed login
}
}
обратите внимание, что я использую таймер и индикатор выполнения для управления действиями, которые вам не нужныдва это только ради полного ответа, надеюсь, это поможет