Member 12270370 Ответов: 2

Как закрыть текущую форму и показать другую?


Я создал приложение для windows на языке C#.
Я хочу показать вторую форму в событии загрузки первой формы и скрыть эту первую форму после открытия второй формы.

Что я уже пробовал:

login l = new login();

using (SqlConnection cn = new SqlConnection(conn))
{
    int remains = getdifff();
    cn.Open();
    SqlCommand cmd = new SqlCommand("select ipaddress from KeyDetails where ipaddress='" + label1.Text + "' ", cn);
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
        if (remains <= 365 && remains >= 1)
        {
            l.Show();
            this.Hide();
        }
        else
        {
            label4.Show();
        }
    }
    else
    {
        this.Show();
    }
    this.Hide();
}

Philippe Mori

Предпочтительно держать основную форму alw ays открытой, чтобы у вас был один значок приложения на панели задач и чтобы он не менялся при открытии другой формы.
Таким образом, хотя можно скрыть форму, может возникнуть нежелательный побочный эффект

2 Ответов

Рейтинг:
4

Leo Chapiro

Если "логин" - это вторая форма, то вам нужно только сделать:

this.Hide();
login l = new login();
l.Show();


Вы можете привязать этот фрагмент кода к событию нажатия кнопки, чтобы проверить его.


Member 12270370

Спасибо, сэр, я тоже пробую это решение, но я, что форма f1 остается показать на windows .

Рейтинг:
17

OriginalGriff

Вероятно, вы пытаетесь отобразить заставку, в то время как ваша основная форма загружает свои данные.
Взгляните на это:
Простой легкий C# SplashScreen с минимальным кодированием[^]
Еще одна заставка в C#[^]


Member 12270370

Сэр, я хочу показать f2, когда F1 загружается, и как только f2 показывает, что F1 закрывается при загрузке f1.Возможно ли это?

OriginalGriff

Да-но... если f1 является основной формой, то приложение закроется, когда это произойдет, поэтому f2 также будет закрыт.
Лучший способ-это сделать f2 основной формой и использовать заставку, как показано в ссылках.

Member 12270370

спасибо сэр за его работу но моя проблема остается такой как есть я поставил некоторое условие в нагрузку f1 и если его ложь то я хочу показать что f1 снова если правда то перейти к f2 закрыть f1

OriginalGriff

Попробуйте объяснить более подробно, что именно вы пытаетесь сделать - мы не получаем никакого контекста для вашего вопроса, кроме того, что именно вы печатаете - мы не видим вашего экрана!
Если это экран входа в систему, то это обрабатывается одним способом; если это что-то другое, то нам нужно знать подробности.

Member 12270370

Спасибо вам сэр он работает хорошо и как будто мое требование

OriginalGriff

Пожалуйста!