/ / C # - Ručné zatvorenie aplikácie formulárov - C #, winforms

C # - Ručné zatváranie aplikácie formulárov - c #, winforms

Chcel by som vedieť vhodný spôsob úplného ukončenia aplikácie Formuláre. Formulár otváram štandardným spôsobom pomocou kódu:

namespace History
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DisplayHistory());
}
}
}

...a tu je barebonová verzia funkcie DisplayHistory s rôznymi vecami, ktoré som sa pokúsil ukončiť komentovaním aplikácie. Prvé dva spôsobia nespracovanú výnimku, v ktorej sa uvádza, že nemôžem získať prístup k umiestnenému objektu. Tretí nemá vôbec žiadny vplyv, a štvrtý nebude vôbec kompilovaný, pretože sa mi zobrazí chyba, že „Aplikácia neobsahuje definíciu pre Current“:

public DisplayHistory()
{
InitializeComponent();

//    this.Close();
//    Close();
//    Application.Exit();
//    Application.Current.Shutdown();
}

odpovede:

2 pre odpoveď č. 1

Namiesto pokusu o jeho zatvorenie v konštruktore je lepšie formulár neotvárať.

Ale ak naozaj chcete zavrieť formulár v konštruktore na základe nejakej podmienky, môžete sa prihlásiť na odber Load udalosť predtým InitializeComponent v kóde a formulár zavrite pomocou this.Close() :

public Form1()
{
if (some criteria)
{
this.Load += (sender, e) => { this.Close(); };
}
return;

InitializeComponent();
}

Ak chcete aplikáciu normálne zavrieť, môžete zavolať nižšie uvedené kódy kdekoľvek okrem konštruktora formulára:

  • this.Close();
  • Application.Exit();

Ak chcete vynútiť zastavenie aplikácie alebo jej neobvyklé zatvorenie, môžete zavolať Environment.Exit kdekoľvek vrátane konštruktora formulára:

  • Environment.Exit(1);