Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
Работа с Windows.Forms хочется из первой формы открыть вторую из второй запустить процедуру и чтобы ход выполнения отображался в контроле на второй форме (например обработано х - элементов) если сделать так Form2 f3=new Form2(); f3.ShowDialog(); f3. AutoImport(); форма появляется и процедура то же выполняется но вот ход выполнения не отображается на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 11:35 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
А если так: Form2 f3=new Form2(); f3.AutoImport(); где public class Form2 : System.Windows.Forms.Form { public void AutoImport() { /*some code here*/ this.ShowDialog(); } } ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 11:40 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
пробовал вставлять внутрь AutoImport() { this.ShowDialog(); // } та же петрушка все равно на форме не отображается результаты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 11:48 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
А как происходит вывод результатов выполнения? Может быть дело в самом выводе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 11:55 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
не знаю все дело в том что если запустить с кнопки на форме то все работает нормально,а если скажем удаленно то нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:00 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
О какизх резултаттах идет речь и где вы ставите в коде ShowDialog В данном примере я бросил на форму лейбл, присвоил ему текст и в результате текст отобразился. public void AutoImport() { label1.Text="SomeText"; this.ShowDialog(); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:00 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
я понимаю так что сначала должна появиться форма потом запускается сам процесс скажем так и уже на этой форме должно происходить отображение открытие второй формы из первой Form2 f3=new Form2(); f3.AutoImport(); где public class Form2 : System.Windows.Forms.Form { public void AutoImport() { /*some code here*/ this.ShowDialog(); this.label1.text=отображаемый текст. } } я сейчас не могу проверить но вроде бы так тоже не работало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:05 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
this.ShowDialog(); this.label1.text=отображаемый текст. Так и не будет работать Перепутано местами надо так : this.label1.text="отображаемый текст"; this.ShowDialog(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:09 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
а если это в цикле то тогда так что ли while (1=1) { "отображаемый текст"=вычисления; this.label1.text="отображаемый текст"; this.ShowDialog(); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:15 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
Думаю проблема в следующем: в первом варианте, где Код: plaintext 1. 2. во втором варианте, где Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Но если вывод не сохраняется на экране, то и показано не будет ничего. Замени ShowDialog() на Show() и посмотри, как все будет работать, а потом в MSDN и изучать, изучать, изучать, как завещал... ну ты понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:15 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
А например так вас не устроит (имитация цикла): public void AutoImport() { this.Show(); for(int i=0;i<1000;i++) { label1.Text="SomeText "+i.ToString(); System.Windows.Forms.Application.DoEvents(); } //по желанию можно поставить this.Close(); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:40 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
ok попробую а это что такое (System.Windows.Forms.Application.DoEvents();) цикл событий какой то что ли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:45 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
а это что такое (System.Windows.Forms.Application.DoEvents();) цикл событий какой то что ли Processes all Windows messages currently in the message queue. Подробнее - MSDN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 12:48 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
Метод которым я пользуюсь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Удачи. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 13:34 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
Ну вы намутили ... Полезли в обработчик событий, а он вам и на пса не сдался. ShowDialog() - выводит модальное окно, пока оно не закроется первая форма будет блокирована. Все управление с этого момента передано во вторую форму. И все там работает приотлично - не понимаю как вы это пишете. А this.Update() не забыли??? во второй форме как только результат выводите??? ... вывод результата; this.Update(); ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:08 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
я делал в цикле чтото типа с refresh(),но наверное обновлял контрол а не форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:19 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
Magnus23Метод которым я пользуюсь: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Удачи. Magnus не все понятно попробую этот вариант если с this.update не прокатит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:24 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
SiriosНу вы намутили ... Полезли в обработчик событий, а он вам и на пса не сдался. ShowDialog() - выводит модальное окно, пока оно не закроется первая форма будет блокирована. Все управление с этого момента передано во вторую форму. И все там работает приотлично - не понимаю как вы это пишете. А this.Update() не забыли??? во второй форме как только результат выводите??? ... вывод результата; this.Update(); ... Что значит "намутили"? Стандартный метод передачи событий из одного класса другому. 2 wait Может быть я не совсем верно понял вопрос. Прогресс выполнения процедуры в подчиненной форме должен быть виден на ней же или на основной? Мой вариант выводит прогресс на основной, думал это и нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:36 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
смысл такой стартует приложение, если с некоторым параметром типа "i" то должна появится вторая форма поверх первой в ней запуститься процедура, результат (ход выполнения должен быть виден в подчинённой форме т.е. второй ) потом если все ок вторая форма т.е. подчиненная закрывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:54 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
В таком случае достаточно будет в прпоцедуре проставить this.Refresh() private void button1_Click(object sender, System.EventArgs e) { Form2 f= new Form2(); f.Show(); } private void work(){ for(int i=0;i<=1000000;i++){ this.Refresh(); label1.Text="Progress " + i; } } private void Form2_Activated(object sender, System.EventArgs e) { work(); } Примерно так. Проверил. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 15:13 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
SiriosНу вы намутили ... ... Никто не мутил!!!! Magnus23 показал объектный подход решения задачи для обновления основного окна если не ставить Application.DoEvents() то ваше окно не будет принимать внешних событий до окончания цикла - попробуйте закомментировать эту строчку и например попытаться переместить окно..... Вообщем, как правильно говорит member Sa [\B] каждое решение имеет право на жизнь, если оно удовлетворяет конечной задаче (возможно я не правильно цитирую , да простит меня автор этих строк :-))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 15:13 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
2 vooo А зачем второй форме принимать события во время выполнения процедуры (разве что экстренного закрытия)? Вопрос ведь, не в этом был. А модальное окно - оно и есть модальное - сделало свое дело и закрылось и делегаты вооще не нужны, а если еще нужно во второй форме использовать процедуры первой, то в конструкторе void Form2(Form1 fm1); нужно получить ссылку на первую форму: Form2 f3 = new Form2(this); и пожалуйста общайтесь с двумя, не смотря что первая заблокирована. В случае с принятием событий во время выполнения процедуры, я согласен, но это другой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 15:45 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
2 Sirios Да ладно уже меня пинать :) Мне почему то показалось что прогресс нужен в первой форме, обычно подобные вопросы задаются именно в этом ключе. В своей-то форме проблем нет... Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 16:11 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
2 Magnus23 Да ладно, братан, без обид. Я сам только учусь, многих слушаю, читаю. А теперь я вижу у кого по делегатам можно консультироваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 16:19 |
|
||
|
из одной формы в другую
|
|||
|---|---|---|---|
|
#18+
Magnus23В своей-то форме проблем нет... Magnus Есть... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Если в форме2 в цикле стоит DoEvents(), то окно ведёт себя как самостоятельное и фокус гуляет где хочет в том числе можно и на форму1 уйти. А ведь по идее нельзя! ( f2.ShowDialog(); ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 16:23 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32616692&tid=1438745]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
136ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 541ms |

| 0 / 0 |
