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

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

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

1.3K10

期末作业C#实现学生宿舍管理系统

dataGridView1视图,添加字段后如下所示 注意:新的优化界面中将该部分窗体重新放到了用户控件中去了,通过panel完成跳转交互,优化用户体验,如果需要更改优化的同学,可以看优化部分(2022...做一个获取,需要获取id值,来进行删除,首先新建一个“删除”按钮 双击该方法中加入代码(这部分代码很关键,建议看懂,开发中找到另外一个方法不过他存在bug,这个无论有没有值不会报错)...,如果在borrow表中加入了room_num字段这样的话就不方便修改了,因为这时同一个字段会在多个表中,不利于修改,大家一定要明白这点,可以配合下图参照理解这句话) user表: ok分析完毕,...如果做到修改删除? 答:通过表单传值记录id新的一个窗口查询一次数据,更新则是用了update 如果做到删除?...答:通过表单传值获取到的id进行数据库语句删除,删除本地的再删除数据库里面的 窗口如何传值: 本次通过构造函数,特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 目标窗体中 int

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

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

CellStyle编辑器中,可以设置奇数和偶数的背景颜色、字体、前景颜色等样式属性。也可以选择使用其他样式。...下面是一个示例代码,演示如何设置DataGridView控件的ClipboardCopyMode属性:private void button1_Click(object sender, EventArgs...使用RowTemplate属性可以DataGridView控件中自定义行样式。可以DataGridView中添加多个,每行都可以有不同的样式。...数据选择DataGridView控件可以允许用户选择或多行数据。可以通过设置控件的属性来控制选择模式,如单选、多选等。...Step 2: 添加DataGridView控件设计器中添加一个DataGridView控件,并在其添加四个按钮:添加、编辑、删除和保存。

1.5K11

不使用反射,“一代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD

,然后DAL层还要用SqlHelper 进行各个存储过程对应参数的实体赋值, 的天呀,写几个表还好,多个表呢, 写的后台都没力气, 典型的苦逼代码工没营养,各位有啥好的处理方法或开发方式。。    ...这里采用另外一种方案,不使用反射,“一代码”实现Web、WinForm窗体表单数据的填充、收集、清除,和到数据库的CRUD,而秘诀就是对表单控件进行扩展。...实战篇:     按照这个方法,PDF.NET开发框架中实现了本文标题说的功能,最近还做了一个简单的例子,大家可以去开源项目网站下载:     项目网址: http://pwmis.codeplex.com...添加前,工具箱中增加一个项:PDF.NET DataForm,然后资源管理器中选择Windows数据控件组件的文件,将它“拖放”到刚才建立的 PDF.NET DataForm下面 ?    ...3,添加数据窗体     我们主窗体放置几个按钮和一个网格控件,以便增、删、改、查询数据: ?

2.7K80

【转】基于C#的WinForm中DataGridView控件操作汇总

可以通过 CurrentCell 来设定 DataGridView激活单元格。将 CurrentCell 设为 Nothing(null) 可以取消激活的单元格。...= "该行单元格内容不能修改"; 2) CellToolTipTextNeeded 事件 批量的单元格的 ToolTip 设定的时候,一个一个指定那么设定的效率比较低, 这时候可以利用 CellToolTipTextNeeded...********DataGridView 判断新增DataGridView的AllowUserToAddRows属性为True时也就是允许用户追加新的场合下,DataGridView的最后一就是新追加的...; *******DataGridView 的用户删除操作的自定义: 1) 无条件的限制删除操作。 默认时,DataGridView允许用户进行行的删除操作的。...默认是 EnableWithAutoHeaderText , Header 如果选择了的话,就拷贝。

5.1K50

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

大家好,又见面了,是你们的朋友全栈君。...)打开VS2013, 首先,启动服务器资源管理器(执行菜单命令“视图”→“服务器资源管理器”,即可进入服务器资源管理器); 第二,建立数据库连接(“数据连接”右击弹出快捷菜单,选择“添加连接”命令...); 第三,类型化数据集的创建(新建一个“Windows应用程序”,然后创建的项目右击,弹出的快捷菜单上选择“添加”→“新建项”命令,“模板”选择“数据集”); 第四,对已创建的数据集,单击“添加...如果数据源为 IBindingListView,并支持高级排序,则获取用于排序和排序顺序信息的多个列名。...6.DataGridView的编辑 (1)允许记录的增、删、改 单击DataGridView控件右上角的小三角按钮,打开“DataGridView任务”面板,使“启用添加”“启用删除”“启用编辑”

6.7K40

Fiddler快速入门

如果我们需要详细查看某个请求,可以左边列表选择一个,然后右边点击Inspectors。点击Inspectors之后,我们可以看到右边有很多标签,上面是请求,下面是响应。...如果点击Raw视图的话,我们就可以查看原始的HTTP请求内容了。这里由于我使用Fiddler捕获的时候网页开着简书,所以捕获了多个简书的自动保存请求。...按进程过滤 在按钮栏上有一个按钮叫Any Process,我们按住这个按钮不放,鼠标会变成十字,然后我们拖动到需要捕获的程序,Fiddler就会获取到该程序的进程号,这样我们就可以只不过某个程序的请求了...使用过滤器 右边选择Filter,选中Use Filter,即可使用过滤器。我们可以看到有很多过滤条件。 过滤主机。我们可以指定捕获某些主机和端口号的请求。...如果不知道请求头和请求体如何填写,可以先使用浏览器提交一个表单,然后用Fiddler查看一下浏览器是如何提交的,再改为自己的。

42520

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

可以通过 CurrentCell 来设定 DataGridView激活单元格。将 CurrentCell 设为 Nothing(null) 可以取消激活的单元格。...= "该行单元格内容不能修改"; 2) CellToolTipTextNeeded 事件 批量的单元格的 ToolTip 设定的时候,一个一个指定那么设定的效率比较低, 这时候可以利用 CellToolTipTextNeeded...********DataGridView 判断新增DataGridView的AllowUserToAddRows属性为True时也就是允许用户追加新的场合下,DataGridView的最后一...; *******DataGridView 的用户删除操作的自定义: 1) 无条件的限制删除操作。 默认时,DataGridView允许用户进行行的删除操作的。...默认是 EnableWithAutoHeaderText , Header 如果选择了的话,就拷贝。

6.4K32

C#代码示例:WinForm中创建并绑定一个DataTable

的一篇文章中,解释了如何在没有数据库的情况下以web形式绑定gridview。这里,将解释如何在没有数据库的windows窗体中绑定datagrid。...的要求很简单。当我们输入所有字段并单击Book按钮时。它将暂时将数据绑定到如下所示的数据网格。已经展示了下面的截图: ? 我们来看看怎么做,以下是实现步骤。 1、创建一个数据表。...3、将此列column添加到datatable 4、创建一个包含输入控件所有值的。 5、将datatable绑定到Datagrid。 在做这个之前,我们需要先添加一个命名空间。...输入第一次预订的详细信息后,当我进行第二次预订时,第一次预订的详细信息将会丢失,因此为了防止这种情况发生,您必须稍微修改一下代码。在这里,已经解释了如何做到这一点。...绑定到datagrid时,输入一个条件。首先,检查该数据表中是否有数据。如果没有数据,则绑定datagrid中的列标头,否则绑定没有datacolumn标头的

3.3K40

003 C# 巧做学习强国题库查询工具

是职场编码,最近你还好吗? 哈哈,这段时间一直忙着学习强国。 你知道吗?学习强国里有个栏目叫挑战答题。 题库随机抽题,每天答对10道,才算过关。 这不,这寻思做一个题库查询工具。...这个工具,还真就做出来了。 这期,就跟我一起看看,这个工具如何制作。 准备数据库 因为C#本身不具备存储功能,因此我们需要选择一个数据库软件。 这里,推荐Access数据库。...二是由于Textbox无法设置垂直居中,因此它外面套了一个panel框架充当白底。 具体设置请参照上图。 查询按钮 这个控件需要修改的地方很少,你可以简单了解下。...下面,介绍核心代码。 引入命名空间 这次用到的有五个必选命名空间。 准备查询 创建数据库连接过程中,由于我使用的是Access2016。...分享经验不易,如果对你有用,记得转发收藏~ 是职场编码,我们下期再见!

2.3K00

DataGridView控件中实现冻结列分界线

我们使用Office Excel的时候,有很多时候需要冻结或者列。这时,Excel会在冻结的行列和非冻结的区域之间绘制一条明显的黑线。...(VS.85).aspx) ,但是呢,DataGridView控件默认不会在冻结列或者的分界处绘制一个明显的分界线,这样的话,最终用户很难注意到当前有列或者是冻结的。...通常,我们如果想在现有的控件多画点什么,就会去Override OnPaint方法,然后加入自己的OwnerDraw逻辑,但是呢DataGridView上有一些困难: 1.如何确定冻结分界线的位置...2.如何保证分界线不会绘制到ScrollBar 研究了一下,我们可以借用DataGridView提供的CellPainting方法。...DataGridView绘制每一个Cell的时候判断当前Cell是否是分界线所在的位置,然后进行绘制。

2.3K100

MultiRow发现之旅(四)- 使用MultiRow开发WinForm应用(附源码)

传统的表格控件展示数据表当中的一条记录时,大部分都是将一条记录展示表格控件当中独立的一里,每行当中的列对应数据表当中的一列,比如.net framework 提供的DataGridView控件,它做数据绑定绑定之后...编辑模板 创建模板的时候,我们需要根据数据库当中的不同字段类型选择不同的Cell类型来展示数据。 本例中,使用了9种Cell类型,根据自己的喜好摆出来下面的布局形式: ?...我们Form添加一个GcMultiRow控件,然后将设计好的Template设置给他的Template属性,并且给GcMultiRow控件添加数据源,以及设置一些属性。...这时候,如果你将Form高度拉大,你会看到多个Row存在于Form之上,就像一个一个卡片一样,请看下图: ?...你也可以保持Form上面不管如何放缩都保持只有一个Row,这个需要写几行代码,在这里就不演示了,如果感兴趣,可以访问GCDN的MulitRow专区,我们可以一起讨论一些细节的问题。

1.3K100

C#实例:datagridview单元格合并

这是替C#微信交流群群友做的一个小实例,目的就是datagridview选择对应以后,点击button后获取对应的ip,并执行相应的操作,其实觉得这样的话button没必要非放置到datagridview...= "选择"; dataGridView1.Columns.Add(newColumn); 这样添加的列是放在最后一列,也许你希望它在其它列,例如第二列,那么可以: dataGridView1.Columns.Insert...DataGridView 添加一个button btn1.Name = "btnRun"; btn1.Text = "Run";...backColorBrush, e.CellBounds); // 画 Grid 边线(仅画单元格的底边线和右边线) // 如果下一和当前行的数据不同...e.CellBounds.Left , e.CellBounds.Bottom); // 画(填写)单元格内容,相同的内容的单元格填写第一个

4.8K10

13个秘技,快速提升表单填写转化率!

引言:如何创建促进转化的注册表单? 译者 | 熊文凯 审校 | 王楠楠 编辑 | Rachel “一个简单又实惠的提升网站线索数和转化效率的方法。” 听起来很有趣,对吗?描述的事实是什么呢?...中放置多个字段的唯一情况是:问题联系非常紧密且一个一个地完成会更加合理时。例如,姓名表单字段应该放在相邻的位置。 不要重复询问信息 你是否曾经填写表格时被要求输入两次密码?...让表单看起来很漂亮 你知道吗? 38%的人会因为网站内容和布局视觉缺乏吸引力或让人不愉快而停止使用网站。人们关心注册表单设计。让表单看起来专业,视觉上有吸引力,并确保它与你其他品牌的外观相匹配。...如果你花时间漂亮的表单格式,则会给线索留下一个持久的印象。 告诉你的线索注册的后续事宜 一旦有人完成了你的注册表单,请让他们知道接下来会发生什么。...如果你担心垃圾邮件,你可以试试后续验证,可以先让线索选中一个方框,上面写着“不是机器人”,然后让他继续接下来的步骤。 测试注册表格 首先,测试表单是否正常工作。

2.7K30

全程无尿点,死磕前端~

这么久没有发文,很多人关心是否离开了这个美丽的世界 ... 这些同学,是如何居心?出来,保证不打死你们。...1.HTML 大家好,是 html ,学名为超文本标记语言。浏览器处处可以看到我的身影。当然,自己不会如此伟大,身后支撑有一个团队,他们是化妆师 CSS 和动作指导 Javascript。...上有很多的标签,经过化妆师 CSS 的修饰,才得以展现如此靓丽的一面(让一些开了美颜、瘦脸、拉长身高的小姐姐自愧不如)。那么,简单的数数上有哪些标签。....box1,.box8{color:red} 2.2.6 伪类选择器 有一个常用的伪类选择器,它就是 hover ,表示鼠标悬浮于元素时的状态。...封闭函数可以创造一个独立的空间,封闭函数内定义的变量和函数不会影响外部同名的函数和变量,可以避免命名冲突,页面上引入多个js文件时,用这种方式添加js文件比较安全.

60110

使用C#开发数据库应用程序

-分布类 C#中,为了方便代码的管理和编辑,使用partial关键字可以将同一个类的代码分开放在多个文件夹中,每个文件都是类的一部分代码。...经验:一次锚定多个控件,按住Ctrl键选择多个控件,然后再设置Anchor属性,可以一次锚定多个控件。...5-2:创建多文档界面应用程序(MDI) a.为什么使用MDI 比如:记事本 如果想在一个窗口中打开多个文件,就要使用MDI(多文档界面)应用程序。...b.什么是MDI 比如:Microsoft Excel中,我们可以同时打开多个Excel文档,而不需要新开一个Excel窗口,这种应用程序我们称为MDI(多文档界面); c.如何创建MDI (1...MultiSelect 是否允许同时选择多行 false selectionMode 选择模式 FullRowSelect b.如何使用DataGridView显示数据 (1)添加窗体的控件

5.9K30

c# access数据库

一个用VS2012的C#连接Access数据库的备忘, SQL数据库固然强大,有大微软的强力技术支持,LINQ的方便操作,但是如果一个小程序对数据库方面没有什么大的要求的话,将来在数据库方面就可以选择使用...菜单 “项目”的最下面 工程属性 菜单,选择“生成”选项卡,将目标平台由“Amy CPU”或者“*64”改成“*86”。...声明:SqlDataReader 提供一种从 SQL Server 数据库读取进流的方式。无法继承此类。...// 返回结果: 如果存在多个,则为 true;否则为 false。 则只需将reader.Read()替换reader.HasRows执行循环,为什么呢?...不过还要将循环里的Read()去掉,则每循环一次前进了两行数据。 } FieldCount 是读取有多少列字段,这里是返回的一个整数,读取到的列的个数.

4.4K20

ado.net的简单数据库操作(三)——简单增删改查的实际应用

果然,犯困的时候就该写写博客,写博客就不困了,哈哈!   上篇记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦。   ...实例描述:在数据库新建一张TbClass表,将表的内容读取到一个DataGridView,并且可以winform面板对表里的内容进行增、删、改的操作。首先给出winform的设计: ?...); 19 } 20 } 21 //将list数据绑定到dataGridView 22 this.dataGridView1....DataSource = list; 23 }   使用SqlHelper之前,需要在App.config中添加配置代码和在项目中添加引用,这是需要注意的,因为以前的博客中有详细讲解如何添加,...然后,要在鼠标选中某一时,获取该行的tClassId.接下来看看获取该id的做法: dataGridView的属性页中找到一个名为RowEnter的事件,双击进入方法,编写函数: ? ?

1.3K30
领券