Пошаговое руководство. Сбор данных с использованием формы Windows Forms
Обновлен: Ноябрь 2007
В этом пошаговом руководстве описывается порядок открытия формы Windows Forms в настройке уровня документа для Microsoft Office Excel, сбора вводимых пользователем данных, а также записи полученных данных в ячейку листа.
Несмотря на то, что данное руководство ориентировано на проекты уровня документа Excel, рассматриваемый подход также применим к другим проектам Visual Studio Tools for Office.
Обязательные компоненты
Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты:
Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System).
Microsoft Office Excel 2003 или Microsoft Office Excel 2007.
Visual Studio Tools for Office устанавливается по умолчанию с перечисленными версиями Visual Studio. Чтобы проверить, установлен ли данный пакет инструментов, см. раздел Установка средств Visual Studio для Office.
Примечание. |
---|
На компьютере могут отображаться имена или расположения некоторых элементов пользовательского интерфейса Visual Studio, отличающиеся от указанных в дальнейших инструкциях. Эти элементы определяются используемой версией Visual Studio и ее параметрами. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Создание нового проекта
На первом этапе необходимо создать проект книги Excel.
Создание нового проекта
Создайте проект книги Excel с именем WinFormInput и выберите в мастере команду Создать новый документ. Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Visual Studio Tools for Office.
Созданная книга Excel открывается в конструкторе Visual Studio. Проект WinFormInput добавляется в обозреватель решений.
Добавление элемента управления NamedRange на лист
Добавление именованного диапазона на лист "Лист1"
Выделите ячейку A1 на листе Sheet1.
В поле Имя введите formInput.
Поле Имя располагается слева от строки формул над столбцом A листа.
Нажмите клавишу ВВОД.
Элемент управления NamedRange добавляется в ячейку A1. Видимых изменений на листе не происходит, однако при выборе ячейки A1 в поле Имя в левом верхнем углу листа и в окне Свойства отображается formInput.
Добавление в проект формы Windows Forms
Создайте форму Windows Forms, предназначенную для ввода сведений пользователем.
Добавление формы Windows Forms
Выберите проект WinFormInput в обозревателе решений.
В меню Проект выберите пункт Добавить форму Windows.
Присвойте форме имя GetInputString.vb или GetInputString.cs и нажмите кнопку Добавить.
Новая форма открывается в конструкторе.
Выделите кнопку и измените значение свойства Text в окне Свойства на ОК.
Добавьте в файл ThisWorkbook.vb или ThisWorkbook.cs код, определяющий сбор вводимых пользователем данных.
Отображение формы Windows Forms и сбор данных
Создайте экземпляр формы Windows Forms GetInputString и отобразите его. Введите необходимые данные в ячейку листа.
Отображение формы и сбор данных
Щелкните правой кнопкой мыши файл ThisWorkbook.vb или ThisWorkbook.cs в обозревателе решений и выберите команду Перейти к коду.
В обработчик событий Open объекта ThisWorkbook добавьте объявление переменной GetInputString и отобразите форму.
Примечание. В C# в необходимо добавить обработчик событий, как показано ниже в событии Startup. Дополнительные сведения о создании обработчиков событий см. в разделе Практическое руководство. Создание обработчиков событий в пакете инструментов Visual Studio для Office.
Private Sub ThisWorkbook_Open() Handles Me.Open Dim inputForm As New GetInputString() inputForm.Show() End Sub
private void ThisWorkbook_Startup(object sender, System.EventArgs e) { this.Open += new Microsoft.Office.Interop.Excel.WorkbookEvents_OpenEventHandler(ThisWorkbook_Open); } private void ThisWorkbook_Open() { GetInputString inputForm = new GetInputString(); inputForm.Show(); }
Создайте метод WriteStringToCell, предназначенный для записи текста в именованный диапазон. При вызове этого метода из формы введенные пользователем данные передаются элементу управления NamedRangeformInput в ячейке A1.
Public Sub WriteStringToCell(ByVal formData As String) Globals.Sheet1.formInput.Value2 = formData End Sub
public void WriteStringToCell(string formData) { Globals.Sheet1.formInput.Value2 = formData; }
Далее добавьте код для обработки события Click кнопки.
Передача данных листу
Передача данных листу
Щелкните правой кнопкой мыши элемент GetInputString в обозревателе решений и выберите команду Открыть в конструкторе.
Дважды щелкните кнопку, чтобы открыть файл кода с автоматическим добавлением обработчика событий Click кнопки.
Добавьте в обработчик событий код, определяющий получение введенных в текстовое поле данных, их передачу функции WriteStringToCell и последующее закрытие формы.
Globals.ThisWorkbook.WriteStringToCell(Me.TextBox1.Text) Me.Dispose()
Globals.ThisWorkbook.WriteStringToCell(this.textBox1.Text); this.Dispose();
Тестирование
Теперь можно выполнить проект. Открывается форма Windows Forms, а введенные данные отображаются на листе.
Тестирование книги
Нажмите клавишу F5 для запуска проекта.
Убедитесь, что форма Windows Forms отображается.
Введите фразу Привет! в текстовое поле и нажмите кнопку ОК.
Убедитесь, что в ячейке A1 листа отображается фраза Привет!
Следующие действия
В этом пошаговом руководстве описываются основные принципы отображения форм Windows Forms и передачи данных листу. Также можно выполнить следующие задачи:
Использование элементов управления Windows Forms в книге Excel или документе Word. Дополнительные сведения см. в разделе Общие сведения об использовании элементов управления Windows Forms в документах Office.
Изменение пользовательского интерфейса приложения Microsoft Office из настройки уровня документа или надстройки уровня приложения. Дополнительные сведения см. в разделе Настройка пользовательского интерфейса Office.
См. также
Задачи
Практическое руководство. Взаимодействие с Windows Forms
Основные понятия
Модель программирования решений Microsoft Office
Программирование надстроек уровня приложения
Настройки программирования уровня документа
Пошаговые руководства с использованием Word