У меня есть простое приложение:Как прервать конструктор оконной формы?
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
конструктор Form1:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// ...
if (some_condition)
{
DialogResult dr = MessageBox.Show("Do you want to continue ?", "Error", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
if (dr == DialogResult.No)
{
// How to close the window normally or how to not create a Form1 instance ?
//
//
}
}
// amount of code that executes only if some_condtion == false
}
}
Я знаю, что я могу проверить some_condition до того Application.Run, но это трудно изменить (поверьте). Мне нужно проверить some_condition в конструкторе Form1. Если some_condition == true, а ответ - нет -> приложение закрывается.
Просто поместите эту логику в статический метод формы. Таким образом, вы можете вызвать его до создания формы. –