Страница: 1 |
Страница: 1 |
Вопрос: Экземпляры форм
Добавлено: 28.01.07 21:05
Автор вопроса: pstrkim
Я открыл несколько экземпляров форм fOrder:
Dim frmSI As New fOrder
frmSI.Show
Как мне написать код для вставки значения в таблицу последнего открытого экземпляра fOrder.DataGrid.Columns(0) из формы со списком fProducts.lv.selecteditem?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 28.01.07 23:52
Ты экземпляр формы объявлешь как frmSI, а обращаешься к нему как fOrder.DataGrid... Почему??? Это некорректно..
В твоем случае необходимо при создании нового экземляра формы запомнить в локальной перменной уровня формы ссылку на этот экземпляр и это будет гарантией того, что у тебя всегда будет под рукой ссылка именно на последний экземпляр. И уже в дальнейшем обращаться к последней форме именно через эту ссылку..
И второе.. DataGrid должен быть объвлен минимум как Friend
Номер ответа: 2
Автор ответа:
pstrkim
Вопросов: 13
Ответов: 16
Профиль | | #2
Добавлено: 31.01.07 13:15
Большое спасибо EROS, помогло! Но вот следующая ситуация – нужно вставить не в последний открытый экземпляр fOrders а в тот который был активным до открытия формы fProducts. Это решается если сделать fOrders дочерней формой и ссылаться на нее из родительской через свойство ActiveForm. Но что делать если fProducts – тоже является дочерней формой.
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 31.01.07 15:41
Тут тоже просто... заведи глобальную переменную типа fOrder(где нибудь в MDI-форме),и в событии Aсtivate присваивай этой переменной ссылку на активную форму.Другими словами форма будет устанавливать ссылку сама на себя.. В результате у тебя в этой переменной всегда будет ссылка на ПОСЛЕДНЮЮ АКТИВНУЮ форму