演练:使用 Windows 窗体收集数据

此演练将演示如何从 Microsoft Office Excel 文档级自定义项中打开 Windows 窗体,收集来自用户的信息并将这些信息写入工作表单元格。

image

第一步是要创建一个 Excel 工作簿项目。

创建新项目
  • 创建一个名为“WinFormInput”的 Excel 工作簿项目,并在向导中选择“创建新文档”。

  •  

将一个指定范围添加到 Sheet1 中
  1. 选择 Sheet1 中的单元格“A1”。

  2. 在“名称”框中键入“formInput”。

    “名称框”位于编辑栏左侧,就在工作表的“A”列的上方。
    image

  3. 按 Enter。

    NamedRange 控件被添加到单元格“A1”中。 选中单元格“A1”后,工作表中没有明显的指示,但“formInput”会显示在“名称”框(正好在左侧工作表的上面)和“属性”窗口中。NameRange控件,其实就是给一个单元格起一个名字,当我们修改了单元格默认的名称,系统就会自动添加一个名为“NameRange”的控件到单元格,在自定义的Windows窗体中,我们可以使用Globals.Sheet1.formInput(Globls.工作簿名称.自定义的单元格名称)来使用这个NameRange控件,并可以使用NameRange的方法属性等,例如后面例子中的“Globals.Sheet1.formInput.value2”

将 Windows 窗体添加到项目中

创建一个提示用户输入信息的 Windows 窗体。

添加 Windows 窗体
  1. 在“解决方案资源管理器”中选择“WinFormInput”项目。

  2. 在“项目”菜单上,单击“添加 Windows 窗体”。

  3. 将窗体命名为 GetInputString.cs,然后单击“添加”。 新窗体在设计器中随即打开。

  4. 将一个 TextBoxButton 添加到窗体中。

  5. 选择该按钮,在“属性”窗口中找到“Text”属性,将文本更改为“确定”。

接下来,在 ThisWorkbook.cs 中添加用于收集用户信息的代码。

创建并显示 GetInputString Windows 窗体的一个实例,然后将用户的信息写入到工作表的某个单元格中。

显示窗体并收集信息
  1. 在“解决方案资源管理器”中右击“ThisWorkbook.cs”,然后单击“查看代码”。ThisWorkbook,好像是应用程序的系统级别管理类

  2. 在 ThisWorkbook 的 Open 事件处理程序中,添加下列代码以声明 GetInputString 窗体的一个变量,然后显示该窗体。

    注意注意

    在 C# 中,必须添加一个事件处理程序,如下面的 Startup 事件中所示。

    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        this.Open += new 
            Microsoft.Office.Interop.Excel.WorkbookEvents_OpenEventHandler(ThisWorkbook_Open);
    }
    注册一个事件,在Excel文档打开的时候就会自动运行。 private void ThisWorkbook_Open() { GetInputString inputForm = new GetInputString(); inputForm.Show(); }
  3. 创建一个名为 WriteStringToCell 的方法,此方法用于将文本写到一个指定的范围内。 将从窗体中调用此方法,并且用户的输入将传递到单元格“A1”上的 NamedRange 控件 formInput。

    public void WriteStringToCell(string formData)
    {
        Globals.Sheet1.formInput.Value2 = formData;
    }
    Globls.工作簿名称.自定义的单元格名称.NameRange控件属性

接下来,向窗体中添加用于处理按钮的单击事件的代码。

 

将信息发送到工作表
  1. 在“解决方案资源管理器”中右击“GetInputString”,然后单击“视图设计器”。

  2. 双击该按钮以打开代码文件,按钮的 Click 事件处理程序也随之添加。

  3. 向事件处理程序添加代码以从文本框中提取输入内容,将其发送到函数 WriteStringToCell,然后关闭窗体。

    Globals.ThisWorkbook.WriteStringToCell(this.textBox1.Text);
    this.Dispose();
    
测试工作簿
  1. 按 F5 运行项目。

  2. 确认 Windows 窗体显示。

  3. 在文本框中键入“Hello World”,然后单击“确定”。

  4. 确认“Hello World”显示在工作表的单元格“A1”中。

posted on 2011-04-04 22:39  一粒沙  阅读(490)  评论(0编辑  收藏  举报