Поделиться через


Пошаговое руководство. Сбор данных с использованием формы 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.

f1wckde0.alert_note(ru-ru,VS.90).gifПримечание.

На компьютере могут отображаться имена или расположения некоторых элементов пользовательского интерфейса Visual Studio, отличающиеся от указанных в дальнейших инструкциях. Эти элементы определяются используемой версией Visual Studio и ее параметрами. Дополнительные сведения см. в разделе Параметры Visual Studio.

Создание нового проекта

На первом этапе необходимо создать проект книги Excel.

Создание нового проекта

Добавление элемента управления NamedRange на лист

Добавление именованного диапазона на лист "Лист1"

  1. Выделите ячейку A1 на листе Sheet1.

  2. В поле Имя введите formInput.

    Поле Имя располагается слева от строки формул над столбцом A листа.

  3. Нажмите клавишу ВВОД.

    Элемент управления NamedRange добавляется в ячейку A1. Видимых изменений на листе не происходит, однако при выборе ячейки A1 в поле Имя в левом верхнем углу листа и в окне Свойства отображается formInput.

Добавление в проект формы Windows Forms

Создайте форму Windows Forms, предназначенную для ввода сведений пользователем.

Добавление формы Windows Forms

  1. Выберите проект WinFormInput в обозревателе решений.

  2. В меню Проект выберите пункт Добавить форму Windows.

  3. Присвойте форме имя GetInputString.vb или GetInputString.cs и нажмите кнопку Добавить.

    Новая форма открывается в конструкторе.

  4. Добавьте на форму элементы управления TextBox и Button.

  5. Выделите кнопку и измените значение свойства Text в окне Свойства на ОК.

Добавьте в файл ThisWorkbook.vb или ThisWorkbook.cs код, определяющий сбор вводимых пользователем данных.

Отображение формы Windows Forms и сбор данных

Создайте экземпляр формы Windows Forms GetInputString и отобразите его. Введите необходимые данные в ячейку листа.

Отображение формы и сбор данных

  1. Щелкните правой кнопкой мыши файл ThisWorkbook.vb или ThisWorkbook.cs в обозревателе решений и выберите команду Перейти к коду.

  2. В обработчик событий Open объекта ThisWorkbook добавьте объявление переменной GetInputString и отобразите форму.

    f1wckde0.alert_note(ru-ru,VS.90).gifПримечание.

    В 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();
    }
    
  3. Создайте метод 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 кнопки.

Передача данных листу

Передача данных листу

  1. Щелкните правой кнопкой мыши элемент GetInputString в обозревателе решений и выберите команду Открыть в конструкторе.

  2. Дважды щелкните кнопку, чтобы открыть файл кода с автоматическим добавлением обработчика событий Click кнопки.

  3. Добавьте в обработчик событий код, определяющий получение введенных в текстовое поле данных, их передачу функции WriteStringToCell и последующее закрытие формы.

    Globals.ThisWorkbook.WriteStringToCell(Me.TextBox1.Text)
    Me.Dispose()
    
    Globals.ThisWorkbook.WriteStringToCell(this.textBox1.Text);
    this.Dispose();
    

Тестирование

Теперь можно выполнить проект. Открывается форма Windows Forms, а введенные данные отображаются на листе.

Тестирование книги

  1. Нажмите клавишу F5 для запуска проекта.

  2. Убедитесь, что форма Windows Forms отображается.

  3. Введите фразу Привет! в текстовое поле и нажмите кнопку ОК.

  4. Убедитесь, что в ячейке A1 листа отображается фраза Привет!

Следующие действия

В этом пошаговом руководстве описываются основные принципы отображения форм Windows Forms и передачи данных листу. Также можно выполнить следующие задачи:

См. также

Задачи

Практическое руководство. Взаимодействие с Windows Forms

Основные понятия

Разработка решений Office

Модель программирования решений Microsoft Office

Программирование надстроек уровня приложения

Настройки программирования уровня документа

Пошаговые руководства с использованием Word

Пошаговые руководства с использованием Excel

Глобализация и локализация решений Microsoft Office