Страница: 1 |
Страница: 1 |
Вопрос: Открытие формы по событию
Добавлено: 29.09.09 11:35
Автор вопроса: Dikobraz Grey
Всем доброго времени суток.
Возникла интересная ситуация: есть две формы. Обе имеют обработчиков событий, происходящих с Word'ом. Первая форма все время открыта и "слушает" Word. По факту открытия документа в Word'e открывается вторая форма.
Private Sub oWord_ApplicationEvents3_Event_DocumentOpen(ByVal Doc As Word._Document) _
Handles oWord.ApplicationEvents2_Event_DocumentOpen
Dim frm As New Form()
frm.Show()
End Sub
Форма конечно открывается, но к сожалению ее контекст не прогружается - внутри белый фон. При этом если открывать ее по нажатию кнопки, то тот же код:
Dim frm As New Form()
frm.Show()
прекрасно работает.
Может кто знает, как обойти эту особенность или глюк? Может, это конечно и RTFM, но google ничего не дал, а в VB.Net я новичек. Всем заранее спасибо.
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
UnDeAdZak
Вопросов: 80
Ответов: 476
Профиль | | #1
Добавлено: 29.09.09 17:34
Гм! насколько я понял, ты УЖЕ создал 2-ю форму, с какимто содержанием, а своим кодом
Dim frm As New Form()
frm.Show()
ты создаёш новую форму, как переменную, и открываеш, не свою вторую форму, а её.Чтобы твоя фторая форма открылась надо написать Form2.Show, притом Form2 - это имя второй формы, по умолчанию, у тебя может стоять другое.
Номер ответа: 2
Автор ответа:
Dikobraz Grey
Вопросов: 1
Ответов: 4
Профиль | | #2
Добавлено: 30.09.09 10:58
создаю новую. с именем Form (первая - main). И show пишу. Фишка в том, что один и тот же код написанный в кнопке первой формы и в обработчике события открытия документа в Word'e на первой форме действует по разному: кнопка открывает вторую форму, а обработчик не может прогрузить ее контекст - форма открывается, но вместо ее контролов и стандартного серого фона - белая заливка(
Номер ответа: 3
Автор ответа:
Дмитрий Юпатов
Вопросов: 4
Ответов: 457
Web-сайт:
Профиль | | #3
Добавлено: 30.09.09 11:43
какой контекст? Ты ж новую форму создал. Пустую.
Или ты в рантайме контролов туда нашпиговал?
Да и с фоном непонятно...
Номер ответа: 4
Автор ответа:
Dikobraz Grey
Вопросов: 1
Ответов: 4
Профиль | | #4
Добавлено: 30.09.09 14:10
Для ясности решил выложить скриншот:
http://slil.ru/28029832
Сверху - форма открытая по событию
снизу - она же, открытая по кнопке из первой формы.
Номер ответа: 5
Автор ответа:
Илья
Вопросов: 1
Ответов: 48
Профиль | | #5
Добавлено: 30.09.09 16:48
Скорее всего форма не сделала paint, а ты пробовал её обновлять? (Refresh)? или перемести её за границу экрана и верни, так ты вызовешь процедуру Paint
Номер ответа: 6
Автор ответа:
Dikobraz Grey
Вопросов: 1
Ответов: 4
Профиль | | #6
Добавлено: 01.10.09 12:28
Спасибо, Илья, но Refresh не помог. Мне кажется она не то что не обновляется, а не догружается. К тому же если навести курсор на эту "неотрисованную" форму курсор превращается в "часики". Значит что-то грузит. Но грузит абсолютно неприемлемое время. Подвисла? Но из кнопки открытие нормальное, что может вызвать зависание при открытии по обработчику события (не Button_click?
Номер ответа: 7
Автор ответа:
Dikobraz Grey
Вопросов: 1
Ответов: 4
Профиль | | #7
Добавлено: 01.10.09 12:54
Проблема решена. форма пыталась открыться из потока Word. Правильный код:
Всем спасибо)