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

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

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

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

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

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

  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. 将一个 TextBox 和 Button 添加到窗体中。

  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);
    }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;
    }
    

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

将信息发送到工作表
  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”中。

转载于:https://www.cnblogs.com/timy/archive/2011/04/04/2005456.html

演练:使用 Windows 窗体收集数据相关推荐

  1. 演练:在 Windows 窗体中承载 Windows Presentation Foundation 复合控件 【转载】

    http://msdn.microsoft.com/zh-cn/library/ms745781.aspx 更新:2007 年 11 月 本演练演示如何创建 WPF 复合控件,并通过使用 Elemen ...

  2. 演练:调试 Windows 窗体

    Windows 窗体是最常见的托管应用程序之一. Windows 窗体创建标准的 Windows 应用程序. 你可以完成此演练使用 Visual Basic 中, C#,或 c + +. 首先,您必须 ...

  3. 服务器性能数据收集,使用 Windows 性能监视器收集数据

    若要监视资源使用量和服务器进程,您可以使用 Windows 服务器附带的 Windows 性能监视器 (PerfMon).使用 PerfMon 来收集详细性能信息,包括 CPU 的使用频率.使用的内存 ...

  4. 创建可按比例调整的布局的 Windows 窗体

    能够正确调整大小的窗体可以提高您的用户界面的易用性. 此演练演示了如何创建当用户调整窗体大小时按比例调整的布局. 您将使用 TableLayoutPanel 控件实现一个接收联系人信息的数据输入窗体. ...

  5. Windows 窗体多线程

                           Windows 窗体多线程     当我们在编写一个需要长时间运行的程序时(如数学计算,执行数据库命令,访问WebService) 常常将它们写在一个组件 ...

  6. windows窗体继承问题

    窗体继承什么时候用的到呢?当我们使用三层架构来编写我们的cs程序时,我们的U层大部分是windows窗体.这个时候如果我们有一些公共变量,或者是一个窗体需要使用另一个窗体的数据.或者是有一些用于判断的 ...

  7. windows服务守护进程bat脚本、windows窗体守护进程bat脚本

    线上运行的windows服务和窗体服务程序经常挂掉,只能从windows日志中找到报了底层错误,问题无法定位,目前的办法是在服务器上运行守护进程 window服务守护进程 @echo off titl ...

  8. 【MSDN文摘】使用自定义验证组件库扩展 Windows 窗体: Form Scope

    使用自定义验证组件库扩展 Windows 窗体,第 2 部分(Windows 窗体探索) 发布日期: 5/28/2004 | 更新日期: 5/28/2004 Michael Weinhardt www ...

  9. vs 窗体连接mysql_vs2008 c#开发windows窗体程序,怎么连接数据库?

    你的位置: 问答吧 -> .NET -> 问题详情 vs2008 c#开发windows窗体程序,怎么连接数据库? 我的oracle服务器为WebServer数据库为MIS,用户名为MIS ...

  10. 在.NET Core 中收集数据的几种方式

    APM是一种应用性能监控工具,可以帮助理解系统行为, 用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题, 通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理 ...

最新文章

  1. 工程路径网站图片路径的问题 绝对路径
  2. 自定义 ArrayList
  3. 数据库系统概念总结:第十四章 事务
  4. 配置MySQL5.7基于keepalived的GTID的双主复制
  5. 知名论坛猴岛游戏论坛宣布永久关闭!
  6. 新安装数据库sqlserver2008r2,使用javaweb连接不上问题处理
  7. android手机两种方式获取IP地址
  8. Java程序Date类型比较
  9. 【JVM】ZGC简介
  10. 区块链优秀gitbook资料
  11. Caffe100数据集使用
  12. 第3章 关系数据模型
  13. 《Java程序设计》第16周周四:GUI编程及文件对话框的使用
  14. knocout搭建静态html,Knockout 官方中文文档 - 爱整理
  15. 2019/7/25 node.js
  16. logistic回归详解(二):损失函数(cost function)详解
  17. linux脚本的注释符号是什么,Shell中的变量和符号
  18. 2021爱分析·中国人工智能应用趋势报告——新基建助推,人工智能应用迈入新阶段
  19. 原来连续查询mysql天数的sql语句这么简单呀
  20. c#调用触滑输入法实现触摸屏键盘功能

热门文章

  1. php编写文章发布程序教程,PHP开发文章发布系统之后台文章修改处理程序
  2. Linux-Windows 端口转发
  3. C# LINQ系列:LINQ to DataSet的DataTable操作 及 DataTable与Linq相互转换
  4. .NET之EntityFramework框架运用
  5. 【Redis】Redis学习(四) Redis Sentinel模式详解
  6. Java虚拟机工作原理详解 (一)
  7. COJ976 WZJ的数据结构(负二十四)
  8. VM虚拟机Bridge模式VMnet0网卡无法启动问题的解决
  9. ddrescue重建损坏磁盘
  10. 图片循环滚动代码[转]