Моя форма открывается и закрывается при запуске - PullRequest
0 голосов
/ 23 октября 2019

Когда я пытаюсь запустить мою форму, она мигает, как будто она никогда не открывается.

Я уже посмотрел свой код, и в этом нет ничего плохого

Вот мой код:

public partial class Initialization : Form
{
    public Initialization()
    {
        InitializeComponent();
    }

    private async Task Wait1(int Milliseconds)
    {
        await Task.Delay(Milliseconds);
    }

    private async void Wait(int Millisecondsdew)
    {
        Wait1(Millisecondsdew);
    }
    private void Initialization_Load(object sender, EventArgs e)
    {
        MessageBox.Show("Initialization");
        ///Setup Stuff///
        ShowIcon = false;
        ControlBox = false;
        FormBorderStyle = FormBorderStyle.FixedDialog;
        Text = "";
        /// Start Initializing///
        richTextBox1.Text = "Initializing....";
        Wait(1000);
        if (File.Exists(@"C:\Program Files (x86)\Lazy Tools\AdditionalFiles.exe"))
        {
            richTextBox1.Text = "Initializing.... \n Software Installers 1 Exists";
            Wait(1000);
            if (File.Exists(@"C:\Program Files (x86)\Lazy Tools\SoftwareInstallers2.exe"))
            {
                richTextBox1.Text = richTextBox1.Text + "\n Software Installers 2 Exists";
                Wait(1000);
            }
            else
            {
                MessageBox.Show("Please reinstall software store, \n Software Installers 2 is missing");
            }
        }
        else
        {
            MessageBox.Show("Please reinstall software store, \n Software Installers 1 is missing");
        }
    }
}

Асинхронная работа отлично работает на моей первой форме, но это вторая форма. Когда я вызываю вторую форму, она мигает и, как никогда, не открывается.

1 Ответ

0 голосов
/ 23 октября 2019

Очевидно, что для свойства ControlBox установлено значение false , а затем для свойства Text устанавливается пустая строка после загрузки формы вызывает закрытие формы (что кажетсякак ошибка).

Код для воспроизведения проблемы:

// Using other events like `Form_Shown` or even a `Button_Click` still has the same behavior
private void Form1_Load(object sender, EventArgs e)
{
    this.ControlBox = false;
    this.Text = "";
}

В качестве обходного пути вы можете вместо этого установить для свойства FormBorderStyle значение FormBorderStyle.None:

this.FormBorderStyle = FormBorderStyle.None;

.., который будет иметь эффект, аналогичный тому, что вы пытаетесь достичь. На самом деле это стандартный способ скрытия строки заголовка.

Если вы не хотите скрывать границу или действительно хотите использовать свойства ControlBox и Text, вы можете сделать любое изследующее:

  • Установите эти два свойства во время разработки. Или ...

  • Переместите эти две строки в конструктор формы:

    public Initialization()
    {
        InitializeComponent();
        this.ControlBox = false;
        this.Text = "";
    }
    
  • Или обязательно установите Text свойство до свойство ControlBox:

    private void Initialization_Load(object sender, EventArgs e)
    {
        this.Text = "";
        this.ControlBox = false;
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...