Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Инструментальное окно в NET.?
     
    
Добавлено: 16.09.05 00:12
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 vito | Web-сайт: softvito.narod2.ru
      
       
  
Сабж.
 
    
Нужно созать инструметальное окно(не модальное) и обмениваться данными с основным окном.
Окно создано и плавает:) но вот с обменом проблемы.
В SDK все примеры с модальными диаговыми окнами или миди.
А вот как организовать обмен данными между двумя немодальными окнами(в NET. классами) -тут проблема(или я не нашел).
Например.
Form2 frm = new Form2() ;
frm.Show ();'немодальный режим.
Тут все более менее ясно. Можно передать данные (инициализация).(хотя все очень странно получается:))
Но вот как передать данные(динамически) из дочерней формы? 
Метод ParentForm в данном случае не очень подходит(и не работает).
'Ошибка! Ткнули не туда:))
'Пример из SDK Млин!
С миди формами нормально, но мне не подходит.
Метод - Box(как я понял) предназначен для работы с неуправлямыми объектами(С# Unm. type->pointers)?
Есть ли какой - нибудь другой способ получить указатель на класс (форму)?
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 6
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 Павел
![]()
![]()
![]()
![]()
![]()
![]()
Администратор
ICQ: 326066673 
Вопросов: 368
Ответов: 5968
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  16.09.05 07:45
       
    
       
  
Частозааваемый вопрос.. Решение пробемы не составляет трудности для человека, имеющего хоть какой-то опыт работы с ООП.
 
    
В "дочерней" форме (которую открывают из родительской):
'...
MessageBox.Show (CType(Me.MyParent, Form1).Text)
В родительской форме:
f.MyParent = Me
f.Show ()
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Павел
![]()
![]()
![]()
![]()
![]()
![]()
Администратор
ICQ: 326066673 
Вопросов: 368
Ответов: 5968
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  16.09.05 07:47
       
    
       
  
Еще хотел добавить: это не совсем красивый код, т.к. он предполагает, что родительская форма - Form1. Более универсальное решение строится с помощью интерфейса (объявляется интерфейс с необходимыми членами, он реализуется всеми формами, которые будут родительскими, а в дочерней форме оперируем не с Form и Form1, а с интерфейсом).
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 vito
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик Offline Client
Вопросов: 23
Ответов: 879
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  16.09.05 15:05
       
    
       
  
Огромное спасибо! А то совсем запарился.
 
    
Но я тут нарыл еще возможность взаимодествия с помощью делегатов?
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 Павел
![]()
![]()
![]()
![]()
![]()
![]()
Администратор
ICQ: 326066673 
Вопросов: 368
Ответов: 5968
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  16.09.05 15:06
       
    
       
  
Да, можно и с помощью делегатов. Но, ИМХО, интерфейсы удобнее и быстрее.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа:
 Павел
![]()
![]()
![]()
![]()
![]()
![]()
Администратор
ICQ: 326066673 
Вопросов: 368
Ответов: 5968
      
 Web-сайт:  
 Профиль |  | #5
      
Добавлено:  16.09.05 15:07
       
    
       
  
Хотя всё конечно зависит от задачи. Бывает лучше создать делегат, или даже событие.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа:
 vito
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик Offline Client
Вопросов: 23
Ответов: 879
      
 Web-сайт:  
 Профиль |  | #6
      
Добавлено:  16.09.05 17:02
       
    
       
  
Павел
 
    
Еще раз огромное спасибо.