Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Zaharius
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 38
1

Вызов VB.Net диалога из события Word

31.08.2012, 23:29. Просмотров 922. Ответов 1
Метки нет (Все метки)

В моём приложении из VB.Net загружаются документы Word. Необходимо осуществить открытие диалогового окна (VB.Net-формы) при событии нажатия пользователем правой кнопки в вордовском документе. В принципе всё работает, но столкнулся с одной проблемой, модель которой представлена в простеньком коде:
При подключённой сборке Word созданы две стандартные формы: Form1 (с двумя кнопками Button1, Button2) и Dialog1 (в которой по ходу загрузки программы создаётся TextBox).
Код программы такой:
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Imports Microsoft.Office.Interop
 
Public Class Form1
    Private WithEvents wdApp As New Word.Application
    Private WithEvents wdDoc As New Word.Document
    Private txtBox As New TextBox
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dialog1.Controls.Add(txtBox)
        txtBox.Visible = True
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dialog1.ShowDialog()
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        wdDoc = wdApp.Documents.Add
        wdDoc.ActiveWindow.Visible = True
    End Sub
 
    Private Sub wdApp_WindowBeforeRightClick(ByVal Sel As Microsoft.Office.Interop.Word.Selection, ByRef Cancel As Boolean) Handles wdApp.WindowBeforeRightClick
        Cancel = True
        Dialog1.ShowDialog()
    End Sub
End Class
При нажатии кнопки №1 открывается диалоговое окно, в котором виден текстбокс.
При нажатии кнопки №2 и клике правой кнопкой мыши в создавшемся документе диалоговое окно тоже открывается, однако в нём почему-то не виден текстбокс.
Если добавить тот же textbox до запуска программы, то он будет виден, но мне нужно добавлять контролы в диалоговую форму именно по ходу выполнения программы.
Помогите решить проблему…
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2012, 23:29
Ответы с готовыми решениями:

Вызов диалога выбора каталога
никак не въеду как осуществить вызов окна для выбора каталога(не файла). ...

Вызов диалога "Сохранить как" в Excel
excel = CreateObject ("Excel.Application") book =...

Вызов события у объекта
Всем привет ) Подскажите пожалуйста как мне вызвать например событие у...

Вызов события Click usercontrol
Добрый день! Создал свой собственный UserControl, который внутри себя содержит...

Вызов события из потока: ошибка доступа к элементу управления
Смысл задачи следующий: В отдельном потоке в цикле проверяется пинг до...

1
kres
72 / 39 / 3
Регистрация: 07.02.2010
Сообщений: 72
02.09.2012, 00:19 2
я не вижу в коде второй кнопки добавления textbox. Обрати внимание на момент: когда закрываешь модальную форму методом .close - ресурсы формы не очищаются и при повторном вызове form_load не происходит. Закрывать лучше методом dispose (с полным освобождением ресурсов). Хотя может я тебя не так понял.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2012, 00:19

События в .NET
Люди что за гон с событиями в .NET!!! Ситуация такая есть объект А у него есть...

Как запретить вызов события Click при нажатии правой кнопки мыши
Доброго времени суток. Как в своём UserControl запретить вызов события Click...

Вызов MS Word при нажатии кнопки
Доброго времени суток! Не подскажите, как можно вызвать Ворд нажатием на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru