@kryptorku28

Почему вызывает первую форму?

Всем привет, я сделал программу с привязкой.

И почему-то при успешном ключе, форма1 остаётся, хотя я её скрыл.

Мне нужно чтобы форма1 пропала, а форма2 появилась. Она и так появляется, но форма1 не пропадает

string HWID;

private void label1_Click(object sender, EventArgs e)
{
}

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
WebClient Wanestian = new WebClient();
string Wanest1an = Wanestian.DownloadString("");
if (Wanest1an.Contains(HWID))
{
MessageBox.Show("Успешно!");
Form2 f2 = new Form2();
f2.Show();
this.Hide();
}
else
{
MessageBox.Show("Купите лицензию!");
Application.Exit();
}
}
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 1
@cicatrix
было бы большой ошибкой думать
Вот сейчас не поручусь за 100% верность, но при старте выполняется метод Show() для первой форме.
Что там "под капотом" - не знаю, но у тебя код в Form_Load, который сам по себе форму не отображает. А поскольку она при старте приложения всё-таки показывается, то изменение видимости формы происходит уже после того, как отработает Load.

Порядок событий такой:
HandleCreated
BindingContextChanged
Load
Control.VisibleChanged
Activated
Shown

Попробуй перенести код в Shown. Думаю, в твоём случае, это поможет.
А вообще, по уму надо бы из Main показывать сначала Form2 , а уж потом Form1 по результату.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы