Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как закрыть основную форму? Как закрыть основную форму? 
:(
    Опции темы
st4lk3r0k
Дата 25.5.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.10.2006

Репутация: нет
Всего: нет



Народ, название темы может быть немного не в тему...
Бообщем пишу программку при запуске которой появляется 
небольшая форма в которой надо ввести логин и пароль, 
при назатии на кнопку "Логин" ета форма должна закрытся и 
одновременно должна открытся другая форма тоесть сама программка.
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
Azzdorf
  Дата 25.5.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



Также над этим когда-то работал smile , только это было давно, Суть в том что нальза закрыть основную форму которая прописана как точка входа типа
Код
[method: STAThread]
public class int Main(string[], args)
{
   Application.Run(new MyForm());
   return 0;
}

MyForm ты не закроеш, потому как закроеш всё.

Решением может быть влипить в Тело класса такой метод:

Код
LoginInFirst()
{
   MyForm.Enabled = False;
   LoginForm LoginForm1 = new LoginForm(); //создаеш зарание
   LoginForm1.Start();
}

На самой форме лепиш что-то типа
Код
if (LoginForm1.dialogResult == OK && login == true && password == true)
{
   Myform.Enebled = true;
}

Поищу исходник, если найду сброшу.....

M
Дрон
Пользуйтесь кнопкой "Код"


Это сообщение отредактировал(а) Дрон - 25.5.2007, 14:56
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
Naum
Дата 25.5.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 1
Всего: 15



Azzdorf, тогда можно проще ;)
Код

[method: STAThread]
public class int Main(string[], args)
{
   using (LoginForm loginForm1 = new LoginForm())
   {
      if (loginForm1.ShowDialog = DialogResult.Ok && login == true)
      {
         Application.Run(new MyForm());
      }
   }
   return 0;
}


Это сообщение отредактировал(а) Naum - 25.5.2007, 14:36


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Gelis
Дата 25.5.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 26.10.2006
Где: Брест

Репутация: 1
Всего: 4



А что мешает сделать формочку  с логином диалоговой для основного окна, а основное сделать просто невидимым. И если вдруг оказалось что логин не верен то просто закрывать основную форму, а если верен, то делать Visible true
PM MAIL   Вверх
st4lk3r0k
Дата 25.5.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.10.2006

Репутация: нет
Всего: нет



О! огромный Спасибо
Исходник было-бы очень кстати =), но я попробую так разобраться.
Ты очень хорошо объяснил, еше раз спасибо!

Добавлено через 3 минуты и 6 секунд
Gelis, 
Цитата(Gelis @  25.5.2007,  14:36 Найти цитируемый пост)
А что мешает сделать формочку  с логином диалоговой для основного окна, а основное сделать просто невидимым. И если вдруг оказалось что логин не верен то просто закрывать основную форму, а если верен, то делать Visible true


пытался, но основную форму сделать невидимой не получается

Добавлено через 14 минут и 41 секунду
народ, я не проф, помогите немного плиз...

нашел вот ето:

Код

    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());
        }
    }
}


что сюда нужно вписать чтобы форму логина можно было состряпать визуально?
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
Retro
Дата 25.5.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Диалектик
***


Профиль
Группа: Участник Клуба
Сообщений: 1934
Регистрация: 28.6.2005
Где: Киев

Репутация: 3
Всего: 117



Цитата(st4lk3r0k @  25.5.2007,  13:40 Найти цитируемый пост)
пытался, но основную форму сделать невидимой не получается

Код

this.Hide();


Добавлено @ 15:01
Цитата(st4lk3r0k @  25.5.2007,  13:40 Найти цитируемый пост)
нашел вот ето:

Это функция Main(), собственно начало программы, ее отправная точка.
Это - Application.Run(new Form1()); - твоя "главная форма".

Добавлено через 3 минуты и 30 секунд
Цитата(Gelis @  25.5.2007,  13:36 Найти цитируемый пост)
А что мешает сделать формочку  с логином диалоговой для основного окна, а основное сделать просто невидимым. И если вдруг оказалось что логин не верен то просто закрывать основную форму, а если верен, то делать Visible true 

Самый оптимальный вариант, без извращений. smile 

Это сообщение отредактировал(а) Retro - 25.5.2007, 15:01
PM MAIL   Вверх
st4lk3r0k
Дата 25.5.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.10.2006

Репутация: нет
Всего: нет



Retro, 

это не пашет:

Код

private void Form1_Load(object sender, EventArgs e)
{
     Form1 frm = new Form1();

      frm.Visible = false;
}


это тоже:

Код

private void Form1_Load(object sender, EventArgs e)
        {
            Form1 frm = new Form1();

            frm.Hide();
        }


и это:

Код


private void Form1_Load(object sender, EventArgs e)
        {
            this.Hide();
        }

--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
st4lk3r0k
Дата 25.5.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.10.2006

Репутация: нет
Всего: нет



Сделал так:

Код

static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            
            Form2 frm = new Form2();

            if (frm.ShowDialog() == DialogResult.OK)
            {
                
                Application.Run(new Form1());
            }
        }
    }


Все работает, спасибо за ответы!
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
Retro
Дата 25.5.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Диалектик
***


Профиль
Группа: Участник Клуба
Сообщений: 1934
Регистрация: 28.6.2005
Где: Киев

Репутация: 3
Всего: 117



Вот, вспомнилось:
Making a Startup Windows Form Invisible
PM MAIL   Вверх
Azzdorf
  Дата 25.5.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



2 st4lk3r0k:
По воду невидимости формы нужно было сделать чучуть не так. 
Код

private void Form1_Load(object sender, EventArgs e)
        {
            Form1 frm = new Form1();

            MyForm.Visible = false;         // нужно скрыть основную форму, а не форму для Логина
        }




И в конечном вареанте незабудь проверять комбинацию:
login == true && password == true
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
Naum
Дата 25.5.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 1
Всего: 15



Цитата(st4lk3r0k @  25.5.2007,  16:28 Найти цитируемый пост)
static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            
            Form2 frm = new Form2();
            if (frm.ShowDialog() == DialogResult.OK)
            {
                
                Application.Run(new Form1());
            }
        }
    }

А я разве не то же самое предлагал. Методы, типа спрятать главную форму, ИМХО, не годятся. Если форму и прятать, то только во время работы. Вначале же она все равно появится|моргнет (особенно если поставить запуск этого приложения при загрузке Винды). ИМХО, главную форму необходимо инициализировать как можно ближе к моменту, когда она должна появится. Если есть вероятность, что она вообще не появится, нафик ее инициализировать?

Добавлено через 4 минуты и 37 секунд
Да. И не забываем frm.Dispose(); или заворачиваем в using. ;)


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
st4lk3r0k
Дата 25.5.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 8.10.2006

Репутация: нет
Всего: нет



Всем спасибо.

Это сообщение отредактировал(а) st4lk3r0k - 25.5.2007, 21:21
--------------------
- Чем вы занимаетесь на работе? - Я специалист по ускоренной релокации средств размножения... - Это как? - Х%и пинаю...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.