首页
学习
活动
专区
圈层
工具
发布

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

在Excel催化剂的几大辅助录入功能中(数据验证保护、数据多级联动输入、关键词模糊智能匹配输入)中,用了一些customxmlPart技术来存储配置信息,同时在关键词模糊智能匹配输入中,用了一个VSTO...一般来说控件都是放到窗体或任务窗格中,但Excel同样支持将控件放到工作表单元格上,如前面提到的picturebox容器,放到单元格区域上,然后在容器上发图片,实现插入图片功能,同样地也可以存放单选、复选这些控件...自定义控件,可直接用到工作表单元格中 具体实现原理 通过用户配置操作,将需要进行快速录入的区域记录下来,用SelectionChange事件来响应,若用户选择到这些单元格时,就激发事件方法,显示自定义控件...输入过程中动态控制下方DataGridView的查找结果,用户可以按方向箭下上在结果中选择对应的条目,再按Enter或Tab键确定内容录入。...事件,例如此处的录入功能中,按Enter是跳转到下一行,按Tab是跳转到右侧列,实现键盘盲打录入不依赖鼠标实现。

1.6K10

一站式WPF--Window(一)

WPF的Window   WPF中的Window继承于ContentControl,内部可以承载一个Content,当然,借助于ItemsControl或Panel,Content也可以向下添加多个对象...路由事件沿着对象树开始向下传递,方向是一去一回,由PreviewKeyDown到KeyDown。...在这个传递过程中,相应的路由事件也被唤起,比如说如果此时焦点在Button上,当传递到Button时还会唤起Button的ClickEvent事件等。   ...Input   路由事件是WPF处理Input的核心,简略的说就是有一去一回从PreivewKeyDown到KeyDown这个过程,PreviewKeyDown的方向是从父到子,KeyDown的方向是从子到父...在PresentationCore中,定义了Visual类,这个是WPF显示的核心,所有可以被显示的对象都直接或间接继承自Visual。当然,这里的Visual Tree就指Visual组成的树。

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

    用户体验细化,增强型的

    当用户在 input 标签中使用方向键时,有一些对应的快捷操作: 如果按的是向上或向下键盘,我们要对应的加减 1 如果按的是shift并按向上或向下键,我们要对应的加减 10 如果按的是alt并按向上或向下键...你在键盘上按下的每个键都有一个唯一的键码。向上箭头键是38向下箭头键是40。因为我不喜欢代码中的魔法数字,所以我们将它们存储在一个对象中以便以后使用。...metaKey 对应是 Mac 上是cmd键,在Windows中是 windows 键。...我们在代码周围添加了一个if子句,以便仅在用户按向上或向下键盘才执行。 当用户按向上或向下键时,我们调用e.preventDefault()。 这样可以防止输入内容被更新,因为我们会自己做。...事件属性可以告诉我们。 如果在我们按下的是向上或向下键的同时还按下 shift 或 alt 键,则e.shiftKey,e.altKey的值为 true。 我们首先使用(isMac ?

    98420

    增强型的

    当用户在 input 标签中使用方向键时,有一些对应的快捷操作: 如果按的是向上或向下键盘,我们要对应的加减 1 如果按的是shift并按向上或向下键,我们要对应的加减 10 如果按的是alt并按向上或向下键...你在键盘上按下的每个键都有一个唯一的键码。向上箭头键是38向下箭头键是40。因为我不喜欢代码中的魔法数字,所以我们将它们存储在一个对象中以便以后使用。...metaKey 对应是 Mac 上是cmd键,在Windows中是 windows 键。...我们在代码周围添加了一个if子句,以便仅在用户按向上或向下键盘才执行。 当用户按向上或向下键时,我们调用e.preventDefault()。 这样可以防止输入内容被更新,因为我们会自己做。...事件属性可以告诉我们。 如果在我们按下的是向上或向下键的同时还按下 shift 或 alt 键,则e.shiftKey,e.altKey的值为 true。 我们首先使用(isMac ?

    73420

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

    用户在删除行的时候,将会引发 DataGridView.UserDeletingRow 事件。 在这个事件里,能够推断条件并取消删除操作。...// DataGridView1 的上3行固定 DataGridView1.Rows[2].Frozen = true; ******DataGridView 列顺序的调整 设定 DataGridView...新加行的默认值的设定 须要指定新加行的默认值的时候,能够在DataGridView.DefaultValuesNeeded事件里处理。...在该事件中处理除了能够设定默认值以外,还能够指定某些特定的单元格的ReadOnly属性等。...比起使用循环遍历,使用该事件来设定右键菜单的效率更高。可是,在DataGridView使用了DataSource绑定并且是VirtualMode的时候,该事件将不被引发。

    5.4K10

    c语言实现2048游戏

    int mt_rand(int, int);//随机数专用 void play(void);//游戏中 void addNumber(void);//新增数字 void keyUp(void);//向上事件...; void keyDown(void);//向下事件; void keyLeft(void);//向左事件; void keyRight(void);//向右事件; void gameOver(int..."   通过字母q或esc退出游戏   \n");     printf("    通过空格键可重新开始    \n");     printf("     请按任意键开始游戏     \n");     ...                }             }         }     } } /**  * 绘制游戏界面  */ void draw(void) {     int x, y;     //绘制第一行横线...本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn 上一篇:

    2.1K40

    C#二十八 数据绑定

    在Windows中绑定是将操作界面和数据源的数据保持一致,即实现操作界面的增删改查与数据库的增删改查一致,这里所说的数据源指数据集或数据表,而窗体可以是Windows窗体或Web窗体,在这里,我们研究关于...简单绑定是指将一个控件的某个属性绑定到某个数据元素(如数据集表中列的值)的能力,这是用于TextBox或Label等控件的典型绑定类型。...如何使用DataGridView Ø DataGridView常用属性和方法 Ø 简单绑定 ​5.1 DataGridView控件​ 在项目开发中,怎么样将数据库的中数据显示到界面上呢...用户可以自己设置单选、多行选择等选择模式,以便方便地选中列表中的数据。用户还可以在标题之间的列分隔符上双击,使左边的列自动按照单元格的内容展开或收缩。...你可以像获取数据表数据那样获取DataGridView控件中任意一个单元格的数据,因为DataGridView控件中表示行的集合也是Rows,在每一行对象(DataGridViewRow对象)中又有一个

    1.5K10

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

    2)登录到服务器上,并显示服务器的数据库和系统服务,包括事件日志、消息队列、性能计数器、系统服务和SQL数据库。 3)查看关于可用Web服务的信息以及使信息可用的方法和架构。...); 第三,类型化数据集的创建(新建一个“Windows应用程序”,然后在创建的项目上右击,在弹出的快捷菜单上选择“添加”→“新建项”命令,“模板”选择“数据集”); 第四,对已创建的数据集,单击“添加...格式: DataGridView控件>.Rows.Add(n) 其中:n表示添加的记录行数。...5.DataGridView列的编辑 单击DataGridView控件的设计器中“编辑列”选项,或者在DataGridView控件的“属性”面板中单击Columns属性右侧的省略按钮,即可进入“编辑列...(1)添加与删除字段 在“编辑列”对话框左侧显示数据表字段名,用“添加”与“移除”按钮可添加或删除字段。 (2)改变字段位置 单击“改变字段位置”按钮,可改变字段在数据表控件中的位置顺序。

    8.5K40

    前端魔法堂:屏蔽Backspace导致页面回退

    如果想恢复Backspace回退,则需要安装Go Back With Backspace的Extension才行。  ...在地址栏输入about:config 在搜索框输入browser.backspace_action,然后设置项目值即可。...3个可选项 0,表示Backspace和Shift+Backspace的行为对应页面回退和前进(Windows下的默认值) 1,表示Backspace和Shift+Backspace的行为对应页面向下滚动和向上滚动...如何应对 方案一:页面跳转时弹出二次确认  通过beforeunload事件实现页面跳转时弹出二次确认模态窗,让用户有后悔的机会。但会截断其他正常跳转的操作流畅性,在确实没有办法时才使用!...started false)) (defn handler "keydown事件响应函数" [e] (when started (let [evt (dom/get-evt e)

    1.6K100

    WinForm使用DataGridView实现类似Excel表格的查找替换

    在桌面程序开发过程中我们常常使用DataGridView作为数据展示的表格,在表格中我们可能要对数据进行查找或者替换。...窗体中主要是查找替换文本的值,选中的查找范围和是否能设置查找范围变量;还包括4个事件,4个事件在GridDataWindow 中添加用于响应操作。...查找下一个 大概的思路就是按照【选定】的当前单元格为标记,首先以当前单元格为分界线向下查找,在查找的过程中判断用户选择的是当前列还是整个数据表,如果是当前列只需要按行查找当前列就行了。...如果是整个数据表查找则需要整行的每列都查找,如果查找到选中行查找的列就是找当前列前面的列(后面的列会在向下查找中遍历到),如果不是选中行则整行从第一列开始全部列查找。...同理,向下查找的思路也就出来了。

    2.1K41

    DOM、BOM一些兼容性问题

    后两个属性的值不光包括 CSS 中设置的 width 和 height 属性值,还有设置的 border 和 padding两个属性值(即:视觉上的宽度或高度)。...滚轮事件中有一个属性可以判断鼠标滚轴是向下滚动的还是向上滚动的,这个属性的值是一个数值。...除了 Firefox 之外,都是有这么一个属性来表示:wheelDelta,它的值通常是 120 或 -120,在 Chrome 中却是 150 和 -150。向上滚动是正值,向下滚动是负值。...),大于 0 时是向上滚动,小于 0 时是向下滚动。...例如,小写“a” 或大写 “A” 将被报告为 65 在 keydown 和 keyup 中;而在 keypress 中,当按下 “Tab” 键时,会输出大写的 A “65”,不按 “Tab” 键时,按下

    1.8K20

    Visual Studio Code 快捷键 Mac 版

    Enter / ⇧⌘Enter 在下/上 插入一行 ⇧⌘\ 跳转到匹配的括号 ⌘] / ⌘[ 向左/向右 缩进当前行 Home / End 跳到当前行的头部,尾部 ⌘↑ / ⌘↓ 跳到当前行的开始,结束...⌘F2 选择当前单词的所有出现 ⌃⇧⌘→ 展开选择 ⌃⇧⌘← 收缩选择 Shift+Alt + drag mouse(拖动鼠标) 列(框)选择 ⇧⌥⌘↑ 向上列(框)选择 ⇧⌥⌘↓ 向下列(框)选择...⇧⌥⌘← 向左列(框)选择 ⇧⌥⌘→ 向右列(框)选择 ⇧⌥⌘PgUp 列(框)选择 向上一页 ⇧⌥⌘PgDown 列(框)选择 向下一页 搜索和替换 Mac 快捷键 介绍 ⌘F 查找 ⌥⌘F 替换...保存所有 ⌘W 关闭 ⌘K ⌘W 关闭所有 ⇧⌘T 重新打开已关闭的编辑器 ⌘K 输入保持打开 ⌃Tab / ⌃⇧ 选项卡打开下一个/上一个 ⌘K P 复制活动文件的路径 ⌘K R 在资源管理器中显示活动文件...⌘K O 在新窗口/实例中显示活动文件 显示 Mac 快捷键 介绍 ⌃⌘F 切换全屏 ⌥⌘1 切换编辑器布局 ⌘= / ⇧⌘- 放大/缩小 ⌘B 切换侧栏可见性 ⇧⌘E 显示资源管理器/切换焦点 ⇧

    1.9K31

    Visual Studio Code快捷键

    / ⇧⌘Enter 在下/上 插入一行 ⇧⌘\ 跳转到匹配的括号 ⌘] / ⌘[ 向左/向右 缩进当前行 Home / End 跳到当前行的头部,尾部 ⌘↑ / ⌘↓ 跳到当前行的开始,结束 ⌃PgUp...⌘F2 选择当前单词的所有出现 ⌃⇧⌘→ 展开选择 ⌃⇧⌘← 收缩选择 Shift+Alt+drag mouse(拖动鼠标) 列(框)选择 ⇧⌥⌘↑ 向上列(框)选择 ⇧⌥⌘↓ 向下列(框)选择 ⇧⌥...⌘← 向左列(框)选择 ⇧⌥⌘→ 向右列(框)选择 ⇧⌥⌘PgUp 列(框)选择 向上一页 ⇧⌥⌘PgDown 列(框)选择 向下一页 搜索和替换 Mac 快捷键 说明 ⌘F 查找 ⌥⌘F 替换 ⌘...⌘K O 在新窗口/实例中显示活动文件 显示 Mac 快捷键 说明 ⌃⌘F 切换全屏 ⌥⌘1 切换编辑器布局 ⌘= / ⇧⌘- 放大/缩小 ⌘B 切换侧栏可见性 ⇧⌘E 显示资源管理器/切换焦点...⇧⌘F 显示搜索 ⌃⇧G 显示Git ⇧⌘D 显示Debug ⇧⌘X 显示扩展名 ⇧⌘H 在文件中替换 ⇧⌘J 切换搜索详细信息 ⇧⌘C 打开新命令提示符/终端 ⇧⌘U 显示输出面板 ⇧⌘V 切换Markdown

    9.1K20

    .NET快速开发实践之应用IExtenderProvider实现控件焦点跳转

    实现实体与对象的做法与例子,下面我为介绍一下在管理信息系统开发中一个常用的功能,控件的输入焦点跳转,我们知道,系统为我们提供了Tab和Shift+Tab切换输入焦点的功能,但是这里面有一个问题,即最终操作者最不习惯于使用...那么我们如何实现这样的功能,最普通的方法是处理输入控件的KeyDown事件,判读按键是否满足跳转:例如 private void tbName_KeyDown(object sender..., KeyEventArgs e) { if(e.KeyCode == Keys.Enter) //回车向下一焦点跳转 {...this.tbInputCode1.Focus(); } else if(e.KeyCode == Keys.Up) //向上键向上一焦点跳转 {...this.tbCode.Focus(); }          这样的做法,我们就必须重写所有输入控件的KeyDown事件,效率低下,也影响代码的美观,我们可以通过应用应用IExtenderProvider

    730100
    领券