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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать форму в отдельном потоке? 
V
    Опции темы
VisMaster
Дата 22.1.2008, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте.

Проблема в следующем: У меня есть основная форма которую я запускаю так:
Код

Application.Run(new mainForm());

в ней мне надо зарустить другую форму, я запускал с помощью NEWForm.ShowDialog(), но этот метод обрабатывает только одно событие и закрывает NEWForm . Чтобы решить эту проблему, я думаю, что мне надо запустить NEWForm в отдельноом потоке, подскажите пожалуйста как это сделать?

Заранее благодарен. 
PM MAIL   Вверх
CYBERDREAM
Дата 22.1.2008, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

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



Код

Form2 f2=new Form2();
f2.ShowDialog()

Или я не в ту степь урыл smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
VisMaster
Дата 22.1.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

я запускал с помощью NEWForm.ShowDialog(),но этот метод обрабатывает только одно событие и закрывает NEWForm

А мне нужно второй раз запустить что то типо  Application.Run(new NewForn()), но если я так пишу то он мне выдает искдючение:
Цитата

Starting a second message loop on a single thread is not a valid operation. Use Form.ShowDialog instead.

PM MAIL   Вверх
CYBERDREAM
Дата 22.1.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

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



На сколько я понял, тебе нужно при загрузке приложения, запустить дубликат. Тогда через System.Diagnostics.Process.Start(Application.ExecutablePath);


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
VisMaster
Дата 22.1.2008, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



не это не совсем то что мне нужно.

Вот то что мне нужно:
у меня есть две разные формы (первая: MainForm, вторая: NewForm), первая запускается при запуске приложения с помошью такого кода:
Код

                MainForm MyMainForm = new MainForm();
                Application.Run(MyMainForm);

а вторая форма должна запускаться при нажатии на кнопку.

Так вот если я вторую форму (NewForm) запускаю так:
Код

NewForm f2=new NewForm();
f2.ShowDialog()

то он обрабатывает только одно событие, а мне нужно несколько. Выход в следующем: мне нужно: создать новый поток и запустить форму NewForm в этом отдельном потоке. Как мне это сделать?
PM MAIL   Вверх
QryStaL
Дата 23.1.2008, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


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

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



Цитата(VisMaster @  22.1.2008,  23:58 Найти цитируемый пост)
то он обрабатывает только одно событие, а мне нужно несколько.


Там все нормально обрабатывается, и не надо никаких других потоков. Или тогда поясни подробнее, что имеется в виду...  smile 


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
VisMaster
Дата 23.1.2008, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



на форме у меня 3 кнопки, на каждую повешено по событию Click, так вот если я  вызывая ShowDialog():

нажимаю на первую кнопку все обрабатывается нормально, данные выводятся, но после этого программа не ждет пока произойдет следующее событие (когда я нажму на следующую кнопку) , а сама закрывает форму.
PM MAIL   Вверх
jonie
Дата 23.1.2008, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



я так понимаю он говорит о модальности второго окна, и ему надо N экзепляров объектов типа Form2
Код

        private Form2[] forms = new Form2[10];
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++ )
            {
                forms[i] = new Form2();
                forms[i].Show();
            }
        }



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
VisMaster
Дата 23.1.2008, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нет я не то имел ввиду.

мне не нужны 10 разных форм, я хочу в форме вызванной методом Application.Run(new Form1()) , вызвать другую форму тоже методом Application.Run(new Form22()). как мне это сделать?

Все спасибо разобрался

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


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

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



Цитата(VisMaster @ 23.1.2008,  02:13)
Нет я не то имел ввиду.

мне не нужны 10 разных форм, я хочу в форме вызванной методом Application.Run(new Form1()) , вызвать другую форму тоже методом Application.Run(new Form22()). как мне это сделать?

Все спасибо разобрался

А ну колись в чем подвох был, а то я так и не понял до конца, что требовалось  smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
ProgrammingLife
  Дата 15.2.2008, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 19.1.2008
Где: ЧИРЧИКАГО (UZ)

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



Что нужно сделать ? в первой форме происходит вызов второй формы идет подсчет и мне нужно что бы результат был в превой форме в label1.Text вот код:

Form1 f1e = new Form1();
            
           f1e.label1.Text = label1.Text;
           f1e.ShowDialog();

выходит третье окно Form1  каким методом сделать что бы была одна форма что нужно сделать ? помогите    

PM MAIL ICQ   Вверх
Softaz
Дата 19.2.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


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

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



Используй делегаты/события

Добавлено через 1 минуту
http://rsdn.ru/article/dotnet/delegat.xml


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
CasperSC
Дата 11.5.2010, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Сори, создал сообщение с ошибкой в коде пришлось удалить

Это сообщение отредактировал(а) CasperSC - 11.5.2010, 01:52
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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