У меня есть SplashScreen
, MainForm
.Показать SplashScreen при загрузке содержимого формы
На моем MainForm_Load
У меня есть метод с именем Connect();
. Эти методы подтверждают подключение моего RFID-устройства к SerialPort, и для завершения требуется несколько секунд.
Пока он проходит через метод Connect()
, я хочу показать SplashScreen
. Я попытался это:
private void Main_Load(object sender, EventArgs e)
{
Frm_Splash s = new Frm_Splash();
s.Show();
Connect();
}
Connect();
метод, показывает сообщение, используя MessageBox
. Но когда SplashScreen
закончился, он закрывается и закрывает MessageBox.
Вот мой SplashScreen
код формы:
private void timer1_Tick(object sender, EventArgs e)
{
if (pbLoad.Value < 100)
{
pbLoad.Value = pbLoad.Value + 1;
}
else
{
timer1.Enabled = false;
this.Close();
}
}
Я знаю, что есть что-то делать с this.Close();
. Я просто не знаю, как это исправить.
Может быть, если я использую this.Visible = false
, но тогда SplashScreen
не будет закрываться, он все равно будет обрабатываться, просто будет невидимым ... Я думаю, что есть лучший вариант.
Кажется, что-то еще. Если 'SplashScreen' - это собственная форма, то закрытие его не может закрывать' MessageBox', созданное из другой формы. – DonBoitnott
@DonBoitnott Я попробовал 'this.visible = false' вместо' this.Close() 'и работал. Но я знаю, что SplashScreen все еще обрабатывается, это просто неразумно. Есть ли у вас предложения ? – Ghaleon
Действительно ли это закрывает окно сообщения или перетаскивает его на задний план? Можете ли вы попытаться свести к минимуму вещи или вкладку alt, чтобы увидеть, все ли там окно сообщений, но скрывается? – BlargleMonster