首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术

一般来说控件都是放到窗体或任务窗格中,但Excel同样支持将控件放到工作表单元格上,如前面提到的picturebox容器,放到单元格区域上,然后在容器上发图片,实现插入图片功能,同样地也可以存放单选、复选这些控件...自定义控件,可直接用到工作表单元格中 具体实现原理 通过用户配置操作,将需要进行快速录入的区域记录下来,用SelectionChange事件来响应,若用户选择到这些单元格时,就激发事件方法,显示自定义控件...输入过程中动态控制下方DataGridView的查找结果,用户可以按方向箭下上在结果中选择对应的条目,再按Enter或Tab键确定内容录入。...,按Enter是跳转到下一行,按Tab是跳转到右侧列,实现键盘盲打录入不依赖鼠标实现。...框架下,有大量微软工程师为我们搭建好的底层技术,使我们在上层构建业务代码时变得如此轻松,此篇给大家展示了在工作表单元格区域上创建自定义控件的能力,发挥得当,较直接弹出窗体的效果要友好得多。

1.3K10

c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

列的操作 *******DataGridView 不显示最以下的新行: 通常 DataGridView 的最以下一行是用户新追加的行(行头显示 * )。...********DataGridView 推断新增行: DataGridView的AllowUserToAddRows属性为True时也就是同意用户追加新行的场合下,DataGridView的最后一行就是新追加的行...在没有新行的时候,NewRowIndex = -1。...在该事件中处理除了能够设定默认值以外,还能够指定某些特定的单元格的ReadOnly属性等。...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,仅仅能自己实现。 下面,是粘贴时简单的事例代码,将拷贝数据粘贴到以选择单元格開始的区域内。

4.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C#—— DataGridView控件的各种操作总结(单元格操作,属性设置)

    ); //解析完毕 e.ParsingApplied = true; } } 二、行/列的操作 *******DataGridView 不显示最下面的新行: 通常 DataGridView 的最下面一行是用户新追加的行...********DataGridView 判断新增行: DataGridView的AllowUserToAddRows属性为True时也就是允许用户追加新行的场合下,DataGridView的最后一行...在没有新行的时候,NewRowIndex = -1。...在该事件中处理除了可以设定默认值以外,还可以指定某些特定的单元格的ReadOnly属性等。...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,只能自己实现。 以下,是粘贴时简单的事例代码,将拷贝数据粘贴到以选择单元格开始的区域内。

    9.4K32

    【愚公系列】2023年11月 Winform控件专题 DataGridView控件详解

    开发人员可以使用Winform控件来构建用户界面并响应用户的操作行为,从而创建功能强大的桌面应用程序。...以下是一些常用的DataGridView控件的操作方法:添加数据:使用DataGridView的Rows属性来添加新行。...在CellStyle编辑器中,可以设置奇数行和偶数行的背景颜色、字体、前景颜色等样式属性。也可以选择使用其他样式。...使用RowTemplate属性可以在DataGridView控件中自定义行样式。可以在DataGridView中添加多个行,每行都可以有不同的样式。...3.具体案例下面是一个Winform中使用DataGridView控件实现CURD的完整案例:Step 1: 创建一个Winform应用程序创建一个新的Winform应用程序,命名为DataGridViewCurdDemo

    2K11

    可视化数据库设计软件有哪些_数据库可视化编程

    ); 第三,类型化数据集的创建(新建一个“Windows应用程序”,然后在创建的项目上右击,在弹出的快捷菜单上选择“添加”→“新建项”命令,“模板”选择“数据集”); 第四,对已创建的数据集,单击“添加...2)创建新查询:右击相应的表适配器,选择“添加查询”命令,按默认向导进入使用SQL语句编辑窗口(见图5-19),并编写SQL语句,单击“下一步”按钮,将“方法名”改为“FillByDeptID”即可。...EG: 创建学生档案管理系统的类型化数据集 1.创建数据集DsStudentSys.xsd 选择学生档案管理系统项目,右击选择快捷菜单中的“添加”→“新建项”,在设计界面中选择“模板”为“数据集”...2)BindingNavigator控件 1.BindingNavigator控件的作用 是一个数据记录导航控件,创建了一些标准化方法供用户搜索和更改 Windows 窗体中的数据,与 BindingSource...属性:表示记录(行)中第j个字段(单元格)。

    6.7K40

    DataGridView使用小结

    }                     //只选中一行时设置活动单元格                     if (dataGridView1.SelectedRows.Count == 1)...["Pic"]).Value = image2;         }     } } 5).当网格未填充满控件时,画线来填充空白区域 ///  /// 绘制网格填充空白区域 /// <...int width = 0;         //当网格未充满控件时才画线         if (i + j < k)         {             using (Brush gridBrush...;//单元格内容居中显示 //行为 dataGridView1.AutoGenerateColumns = false;//不自动创建列 dataGridView1.AllowUserToAddRows...;//列标题居中显示 但实际的效果总是偏左了一点,原因是列可以进行排序,排序标志符号在列标题上占了空间。

    2.3K20

    C#二十八 数据绑定

    在.Net中提供了DataGridView控件使我们可以显示表格数据,DataGridView控件除了可以直接显示数据表数据外,还支持排序、数据绑定以及创建自己的单元格类型、自定义控件外观等高级功能。...时列是否移动 ReadOnly 指定单元格是否为只读 ColumnCount DataGridView中显示的列数 RowCount DataGridView中显示的行数 Rows 所有控件的行 CurrentCell...当前单元格 CurrentRow 当前单元格的行 SelectedRows 用户选定的行 DataMember 数据源绑定的数据集,这里是数据表的名称 DefaultCellStyle 单元格的默认外观样式...用户可以自己设置单选、多行选择等选择模式,以便方便地选中列表中的数据。用户还可以在标题之间的列分隔符上双击,使左边的列自动按照单元格的内容展开或收缩。...你可以像获取数据表数据那样获取DataGridView控件中任意一个单元格的数据,因为DataGridView控件中表示行的集合也是Rows,在每一行对象(DataGridViewRow对象)中又有一个

    11110

    创建一个欢迎 cookie 利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息。…

    创建一个欢迎 cookie 利用用户在提示框中输入的数据创建一个 JavaScript Cookie,当该用户再次访问该页面时,根据 cookie 中的信息发出欢迎信息。...cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。...当访问者再次访问网站时,他们会收到类似 “Welcome John Doe!” 的欢迎词。而名字则是从 cookie 中取回的。...密码 cookie 当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。...当他们再次访问网站时,密码就会从 cookie 中取回。 日期 cookie 当访问者首次访问你的网站时,当前的日期可存储于 cookie 中。

    2.7K10

    DataGridView控件用法一:数据绑定

    在绑定到包含多个列表或表的数据源时,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。...与基于文本的值一起使用,在绑定到数字和字符串类型的值时自动生成 DataGridViewCheckBoxColumn 与boolean和checkState值一起使用,在绑定到这些类型的值时自动生成...,通常用来做未绑定列 DataGridViewComboBoxColumn 用户在单元格中显示下拉列表,不会在绑定时自动生成,通常需要手动进行数据绑定 DataGridViewLinkColumn 用于在单元格中显示超链接...在绑定到包含多个列表或表的数据源时,只需将DataMember属性设置为指定要绑定的列表或表的字符串即可。...this.dgv_Demo.AllowUserToAddRows = false;//不自动产生最后的新行 } /// /// 创建

    4K20

    C#——DataGridView控件填写数据事件

    对于DataGridView控件,与单元格内容相关的有以下这几个事件: // 当单元格内容改变并且提交之后发生(提交一般是单元格在编辑完之后失去焦点.../ 当单元格进入编辑状态时发生 private void dataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs...private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { } 但是以上这几个事件都不能实现每次向单元格输入新的内容时发生...EditingControlShowing事件比上述事件还要早发生,他是dataGridView控件为了使用户可以编辑,而加载一个TextBox(如果单元格时复选框,是其他的控件,那么就加载对应的控件)...,加载TextBox时这个事件发生,可以在时间参数中获取这个TextBox的引用,动态注册一个事件即可。

    1.6K62

    DataGridViewCheckBoxColumn的勾选框勾上了,Value却是false

    列,当修改checkbox状态时实时获得其状态值    不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,...下面就列出它的解决办法: 主要用到了datagridview的CurrentCellDirtyStateChanged和CellValueChanged两个事件 CurrentCellDirtyStateChanged...事件是提交对checkbox状态的修改 CellValueChanged事件是当状态提交后,也就是单元格值改变后做一些其它的操作,这里是将checkbox列的true或false状态作为tooptiptext...属性设置到同一行的button列 CurrentCellDirtyStateChanged事件代码 : private void dataGridView1_CurrentCellDirtyStateChanged...列单元格                 DataGridViewCheckBoxCell dgvCheckBoxCell = this.dataGridView1.Rows[e.RowIndex].Cells

    2.2K10

    C#之二十三 打印和水晶报表

    命名空间内的CrystalReportViewer控件由Windows项目使用),其中前两个都可以在工具箱的“Crystal Reports”的卡片中找到,报表专家需要你点击项目菜单中的“添加新项”命令创建...“按钮,新建一个报表并打开图所示”Crystal库“对话框,该对话框中,在”创建新Crystal Report 文档“中选择”使用报表向导“选项,并”选择专家“中的”标准“选项 (5) 单击...(6) 选择“可用数据源“中“创建新连接”下的OLEDB(ADO)命令打开对话框,选定数据源后,单击“下一步“按钮,在界面中填写正确的数据库连接信息,单击”下一步“按钮,进入高级信息编辑界面...Table对象 的Cell对象 代表表格中的单个单元格,Cell对象是Cells集合中的元素,Cells集合中指定对象中所有的单元格。...例如,下面的代码用来指定Excel工作薄中第一行第一列的单元格中的内容为“Excel”: 实现过程: (1) 新建一个Windows应用程序,默认主窗体为Form1. (2)

    13200

    【C#】让DataGridView输入中实时更新数据源中的计算列

    DataGridView(下称dgv),A、B两列都要在dgv中显示,其中A列可编辑(ReadOnly=false)。...需求是对A列进行编辑时(输入或删除),B列能实时变化。例如下面的例子: ? 【目标文件名】是根据【款号】和【色号】计算而来(连接字符串),当编辑款号/色号时,目标文件名能实时变化。...当dgv绑定数据源后,它的每一行就对应了数据源中的一行(或叫一项),这就是我所谓的【源行】。...可以通过DataGridViewRow.DataBoundItem属性获得,该属性类型是object,当dgv的数据源为DataTable或DataView(下称dv)时,DataBoundItem的真实类型就是...可以看到,计算列得到更新的关键有两处: dgv单元格的数据要提交到数据源相应单元格 源行结束编辑状态 按常规提交流程,必须使焦点离开单元格所在的行(只离开单元格都不行哦)才能达到目的,而我们的需求是,编辑的过程中就要实时更新

    5.3K20

    MultiRow中文版技术白皮书

    在自由布局的基础上,MultiRow中增加了模板(Template)的概念。...这样的设计思路满足了设计和开发分离的用户需求,负责设计表格的美工人员只需要设计一个模板,在模板中设置好表格的所有布局和外观,然后交予应用程序开发人员进行具体功能的开发。...非绑定模式,即在不绑定到数据源的情况下,可以很方便的操作和显示数据。 虚拟模式,虚拟模式是为大型数据存储区而设计的,仅当数据需要显示的时候,由用户来操作单元格的填充,编辑和删除。...在数据校验方面,MultiRow内置了十余种校验器,可以方便的满足诸如值范围校验,值比较校验,正则表达式校验等,当校验失败时,可以以Tip,Icon,声音等多种方式提示用户,以便重新输入正确的值。...行和单元格的虚拟机制更让大数据量的内存消耗达到最低,让最终用户体验不一样的速度。

    1.3K50

    在DataGridView控件中加入ComboBox下拉列表框的实现

    本文转载:http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.html 虽然在Visual Studio中 DataGridView...本文介绍一种只在当前编辑单元格中显示下拉列表框的方法,供大家参考。   ...控件中     this.dgv_User.Controls.Add(cmb_Temp); }   当用户选择的单元格移动到性别这一列时,我们要显示下拉列表框,添加如下事件 private void dgv_User_CurrentCellChanged...控件中             this.dgv_User.Controls.Add(cmb_Temp);         }         // 当用户移动到性别这一列时单元格显示下拉列表框        ...DataGridViewColumnEventArgs e)         {             this.cmb_Temp.Visible = false;         }         // 绑定数据表后将性别列中的每一单元格的

    3.9K20
    领券