C# Forma na pierwszy planie

0

Jak dodać formę na pierwszy plan? Chcę zrobić loader zanim program się uruchomi (czyli wyświetlić drugą formę z jakimś obrazkiem). W moim kodzie forma loader wyświetla się na 100% ale jest niewidoczna bo aktywuje się forma główna i w gruncie rzeczy loadera nie widać...

public static void Main(string[] args)
		{
			
			// Deaktywacja menu start
			Window.Hide();
			Window.Disable();

			// Wyświetlenie loadera
			fLoader = new LoaderForm();
			fLoader.BringToFront();
			fLoader.TopMost = true;
			fLoader.Show();
						
            // Inicjalizacja aplikacji
          	Application.Run(new MainForm());
			
			// Zatrzymanie pętli skanowania
			Scaner.RequestStop();
			
			// Aktywacja menu start
			Window.Show();
			Window.Enable();
		}
0

ShowDialog() zamiast Show()?

0

Próbowałem, ale wtedy program się zatrzymuje i nie idzie dalej.

0

A czy

fLoader.BringToFront();

nie powinien być zawołany po

fLoader.Show();

?

0

Jak najbardziej. Tylko, że wtedy program zwraca wyjątek. Zapomniałem to po prostu skasować, normalnie tego tam nie ma.

0
static void Main()
{
	Application.EnableVisualStyles();
	Application.SetCompatibleTextRenderingDefault(false);			
	Application.Run(new Form1());
}
public Form1()
{
	InitializeComponent();
	Form2 f2 = new Form2();
			
	f2.Show();
	f2.BringToFront();
	f2.TopMost = true;
}

Wyświetla 2 formy, z czego druga na starcie ląduje na wierzchu.

0

Jestem zdania że tzw. splash czy loader screen lepiej pokazać prze stworzeniem głównego okna. Następnie pobrać wszystkie dane jakie są niezbędne do działania, nawiązać połącznia, przeprowadzić jakieś autentykacje/walidacje użytkownika/sprzętu. I jak już wszystko jest jak powinno odpalić okno główne, które jest warstwą prezentacji.
Poza tym otwarcie Form2 przesz Show w Form1, spowoduje że przetwarzanie w Form1 będzie leciało dalej, czyli po konstruktorze odpali się onload i następnie forma. Nie sądzę że jest to pożądane. Zazwyczj po to wyświetlamy splash screen, bo musimy dłużej coś poprzetwarzać na początku, żeby program mógł zacząć działać, czyli żeby pokazać Form1.
Więc oryginalna idea autora wydaje mi się słuszna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1