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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Окна логина и самого приложения, Как в QIP, WinSCP etc 
:(
    Опции темы
Kano
Дата 16.2.2010, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мне необходимо реализовать приложение, в котором сначала пользователем задаются настройки соединения, он нажимает на "Connect", закрывается окно с вводом данных и открывается окно приложения, где происходит попытка соединиться и работать с удалённым сервером. Как это сделано в QIP, WinSCP и других приложениях.

В Form1.cs есть код вывода дочернего окна по клику на кнопке:
Код

        private void connectButton_Click(object sender, EventArgs e)
        {
            try
            {
                // ...

                // Открытие окна самого приложения
                Form2 manager = new Form2();
                manager.Show();
            }
            catch (Exception ex)
            {
                // ...
            }
            finally
            {
                // ...
            }
        }


После того, как пользователь без ошибок ввёл данные для соединения, необходимо сохранить введённые данные, закрыть (скрыть?) первую форму, открыть вторую и получить введённые данные.

Возникают вопросы:
1. Как правильнее убрать окно ввода настроек соединения после самого ввода пользователем: скрыть или закрыть? Как это принято?
2. Как правильнее получить эти данные во втором окне? Я знаю, что надо сделать TextBox'ы как public или реализовать public-методы типа getHostname(), getUsername() и т.п., но как мне обратиться к объекту первого окна из дочернего? Где находится ссылка на него?
Ведь в Program.cs он создаётся просто вот так:
Код

// ...
            Application.Run(new Form1());
// ...


Это сообщение отредактировал(а) Kano - 16.2.2010, 21:35
PM MAIL   Вверх
kobra
Дата 17.2.2010, 14:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

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



Код

    static class Program
    {
        static public string UserName;
        static public string Password;
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            LoginForm lf = new LoginForm();
            if (lf.ShowDialog() == DialogResult.OK)
            {
                //здес что угодно 
                Application.Run(new MainForm());
            }
        }
    }


Это сообщение отредактировал(а) kobra - 17.2.2010, 14:24
PM MAIL   Вверх
Kano
Дата 18.2.2010, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



kobra, благодарю
PM MAIL   Вверх
explorer
Дата 18.2.2010, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ага-ага. А если я 2 таких приложения запущу? И захочу разные настройки для них? Если оставлять static поля, то нужно реализовать паттерн Singletone (одиночка). Иначе нужно думать что-то еще. Например, temp-файлы. Для каждого свой. Открыл, записал, прочитал, закрыл, удалил (и счастливо забыл smile).
--------------------
 
PM MAIL WWW ICQ   Вверх
Kano
Дата 18.2.2010, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



explorer, для какого именно класса реализовать Singleton?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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