C# Forma na pierwszy planie

C# Forma na pierwszy planie
SA
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 10 lat
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ć...

Kopiuj
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();
		}
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Wrocław
0

ShowDialog() zamiast Show()?

SA
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 10 lat
0

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

LE
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 12 lat
0

A czy

Kopiuj
fLoader.BringToFront();

nie powinien być zawołany po

Kopiuj
fLoader.Show();

?


Jest 10 rodzajów ludzi. Ci którzy rozumieją zapis binarny i ci którzy go nie rozumieją.
edytowany 2x, ostatnio: leshqo
SA
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 10 lat
0

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

LE
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 12 lat
0
Kopiuj
static void Main()
{
	Application.EnableVisualStyles();
	Application.SetCompatibleTextRenderingDefault(false);			
	Application.Run(new Form1());
}
Kopiuj
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.


Jest 10 rodzajów ludzi. Ci którzy rozumieją zapis binarny i ci którzy go nie rozumieją.
edytowany 1x, ostatnio: leshqo
massther
  • Rejestracja:ponad 16 lat
  • Ostatnio:prawie 9 lat
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.