在用户窗体上添加工具栏
- 格式:pdf
- 大小:590.01 KB
- 文档页数:5
U8工具栏控件摘要工具栏<Toolbar>是U8应用程序常用的界面元素.把菜单中常用的命令做成按钮安排在工具条中,配上适当的图标符号和文本提示,能够极大地方便用户.U8产品开发尤其是前台UI开发中,工具栏控件和窗体一样是系统展现不可缺少的一部分.在早期U8产品开发过程中大量使用了微软的MSToolbar,但是随着U8ERP产品开发的精细化、专业化,微软的MSToolbar在界面设计和程序开发中暴露出了诸如界面图标配置不灵活、不支持多级菜单、不适应复杂应用场景、对多语的支持不够完善等开发问题.为了弥补这些不足,并且兼容之前的产品,U8平台提供了工具栏控件.在V11版本中,又对工具栏在UE效果上做了进一步改进,采用Ribbon工具栏风格,形成了现在U8产品的工具栏效果.什么是工具栏?Ribbon风格:Ribbon是一种以皮肤与标签页为架构的用户界面<User Interface>,原先出现在Microsoft Office 2007 与2010 的Word、Excel和Powerpoint 等组件中,后来也被运用到Windows 7 的一些附加组件等其它软件中,如画图和写字板,以与Windows 8 中的资源管理器.它是一个收藏了命令按钮和图标的皮肤.它把命令组织成一组"标签",每一组包含了相关的命令.每一个应用程序都有一个不同的标签组,展示了程序所提供的功能.在每个标签里,各种的相关的选项被组在一起.设计Ribbon的目的是为了使应用程序的功能更加易于发现和使用,减少了点击鼠标的次数.门户Toolbar:从门户树形菜单或全景式菜单打开的选项卡式窗体〔即嵌入门户的窗体〕中包含的工具栏称为门户Toolbar.如下图所示:图门户Toolbar示意图由于门户工具栏是U8各产品较常见且核心的内容,所以有必要介绍门户工具栏内部的一些概念,包括排版组、分组、按钮样式等.以下分别介绍:按钮分组:在门户Toolbar上,两个分割线之间的区域即为一个按钮分组.图按钮分组示意图排版组:每个纵向排列的按钮集合即为一个排版组,排版组形式可能表现为一个大按钮、或者两个小按钮、三个小按钮.如下图:〔一个大按钮〕〔两个小按钮〕〔三个小按钮〕按钮样式主要表现为普通按钮、下拉菜单〔带设置默认功能〕、下拉菜单〔不带设置默认功能、Toggle按钮、Combobox类型按钮.〔Toggle按钮〕〔普通按钮〕〔下拉菜单〔不带设置默认功能〕〕〔下拉菜单〔带设置默认功能〕〕〔显示模板信息的按钮为Combobox类型按钮〕由于单据是U8产品常见且核心的功能,所以单据上除了有门户Toolbar以外,也包含自己的Toolbar,方便用户能够快速定位功能.单据的Toolbar包括表头Toolbar和表体Toolbar.表头Toolbar:表头工具栏并不是一个完整的工具栏,表头工具栏只是包含刷新、翻页〔首页、前页、后页、末页〕、高级等按钮.其他的是单据表头的一部分,是单据控件的内部功能.如下图所示:图表头Toolbar示意图表体Toolbar:表体工具栏是指单据表体顶部的工具栏,主要是针对表体的一些便捷操作的功能集合,方便用户浏览、操作表体数据时进行本单据的个性化操作.如下图所示:图表体Toolbar示意图模态窗体Toolbar:非嵌入门户的窗体上的Toolbar工具栏.这种窗体上的按钮样式相对门户Toolbar要少,没有Combobox类型、没有排版组和大小按钮的概念.U890、U810.0、U810.1版本的按钮样式和U811.0模态窗体Toolbar的按钮样式相同.图模态窗体Toolbar目标本文主要介绍工具栏控件的基础知识,应用过程与相关注意事项,方便各类U8产品开发人员更好的使用工具栏控件,更高效的开发产品.工具栏可以做什么?工具栏是U8应用程序开发中必不可少的组件,工具栏支持多语、支持键盘快捷键、支持多级菜单的展示和运用、支持设置图标和文字、集成MSToolbar方便业务组快速开发同时保持程序的向后兼容性.1.V10.1与之前版本工具栏特性由于V11.0版本只是在界面UE效果和工具栏构建方式上做了修改,其他内容均和之前版本相似,所以这里不做重点的讲解,这些版本的样式和ssss相同.使用方式将在[如何使用工具栏组件]中介绍.2.V11特性a)支持流式布局➢没有权限的按钮不显示,相同排版组内其余按钮自动重新排版.排版组可以定义小按钮最大行数.当出现空白列时,后面的按钮自动向前平移.➢一个排版组内按钮因授权问题导致只有一个小按钮时自动升级为大按钮.➢相关系统没有启用而导致的不可用功能按钮不显示,如工作流没有启用,提交按钮不显示.➢有权限但当前单据状态或者操作状态下不可用按钮置灰.b)支持多行显示图多行显示示意图➢工具栏高度为三行横向排版小按钮高度.➢大按钮图标和标签采用上下排版,按钮占整个工具栏可用高度〔三行小按钮〕.➢小按钮图标和标签左右排版,当一列有三个小按钮时工具栏可用高度三等分、纵向中对齐,当一列有两个小按钮时工具栏可用高度二等分、纵向中对齐,当一列只有一个小按钮时工具栏可用高度二等分,纵向中对齐,按钮放在第一行.➢当相邻有多个小按钮时,可以把它们划分为一个或者多个排版组,每个排版组可以指定排版行数.c)支持分组➢按钮支持按分组排列、排版组信息d)多按钮样式➢普通小按钮、下拉菜单小按钮、有默认功能的下拉菜单小按钮➢普通大按钮、下拉菜单大按钮、有默认功能的下拉菜单大按钮3.数据字典a)V11.0数据字典b)二次开发数据字典如何使用工具栏控件?1.老版本应用工具栏控件〔890/10.0/10.1〕首先引用MSToolbar、UFToolbar组件一定要注意,引用MSToolbar要引用Microsoft Windows Common Controls 6.0<sp6>也就是MSComctl.ocx,不要引用MSComCt2.ocx然后在窗体上增加MSToolbar、UFToolbar、ImageList设计MSToolbar得到的效果如下:2.V11.0版本应用工具栏控件在V11.0版本中,工具栏组件为了能够规范业务组的编程并配合整体UE设计效果,做了两个大的调整:Ribbon风格、UE效果和支持数据库预置按钮的方式.对于UE和Ribbon风格已经在[什么是工具栏]中做了介绍,在此不再赘述.下面讲解如何通过数据库预置的方式设计U8的工具栏.a)预置数据数据表结构和字段说明详见[工具栏可以做什么]中的V11.0数据字典.如果想结合数据字典了解工具栏的具体预置方法,可以执行下面的脚本,参考采购订单的预置内容.下面是预置数据示例b)在所在窗体上引用相关组件此过程和老版本应用工具栏控件执行窗体上引用相关组件相同,可参考上一节,再此不再赘述.c)执行如下代码即可加载工具栏组件d)按钮图片名遵循的约定V11.0中有一点和老版本应用工具栏控件不同,老版本应用工具栏控件,如果希望按钮是带图标的,则必须有ImageList控件,该控件加载按钮的相应图标.在数据库中通过AA_FormButtons_Base和AA_FormButtonMenus_Base表的cPic字段体现,具体可以参考数据字典.只需要预置文件名即可,不要带路径和扩展名.门户Toolbar区域的按钮分大按钮和小按钮,图片分别存在于U8soft\icons\BigIcon和U8soft\icons\SmallIcon\目录下,要预置数据可去相关文件夹寻找对应的图片名.表头Toolbar区域的图片名是固定的,分别如下高级按钮无图片,可不预置定位结果与历史按钮图片是固定的,系统默认的,无需预置该按钮刷新按钮图片名:Refresh首页按钮图片名:first page上一页按钮图片名:Previous Page下一页按钮图片名:Next page末页按钮图片名:Last page表体Toolbar区域均不包含图片,无需图片名特别要说明的是工具栏组件不仅支持数据库预置按钮的方式,为了保持向后的兼容性,仍然支持该章节第一部分老版本应用工具栏控件的方式,详见1、老版本应用工具栏控件.3.二次开发应用工具栏控件a)检查所在窗体是否支持二次开发工具栏组件原则上都可以支持二次开发行为,但由于某些界面没有这方面的需求,所以并没有支持二次开发功能在一个界面上同时按住Ctrl+Shift并点击任何一个按钮,这样你所需要的信息将被Copy 到写字板<附件中的写字板>上,〔注意不是记事本notepad〕.b)数据预置相关数据结构在二次开发数据字典的AA_CustomerButton表中,可查阅相关内容.c)脚本预置示例d)对外接口4.复杂场景应用工具栏控件a)老版本升级到V11具体方式和V11.0版本应用工具栏控件相同.可以参考[如何使用工具栏控件]中V11.0版本应用工具栏控件章节.下面主要说明老版本升级到V11需要注意的几个方面:bobox类型按钮〔显示模板、打印模板按钮〕显示模板、打印模板按钮是Combobox类型的,预置数据时iToolbarStyle字段要预置成55.Combobox类型按钮需要在窗体上增加一个Combobox的VB控件,然后初始化时需要将该控件直接作为Tag对象赋值给Toolbar按钮的Tag不要再给MSToolbar设计按钮,按钮直接从数据库加载,不要再给MSToolbar 赋ImageList,按钮图片都从数据库加载,不再从ImageList中取如果是单据界面,需要给单据控件赋Otoolbar对象Set oVoucher.Otoolbar=UFToolbar无论是单据界面还是列表界面都要给UFToolbar调用SetFormInfob)老版本不升级仍然在V11中使用对于这种情况.之前开发的按钮应该是自己在窗体上加MSToolbar和UFToolbar,然后直接在MSToolbar上〔设计时〕增加按钮,调用UFToolbar.SetToolbar MSToolbar来把MSToolbar上按钮加载到界面上显示的UFToolbar上.之后可以改变MSToolbar上对应按钮的状态,Enable 或Visible.然后调用UFToolbar.RefreshEnable或UFToolbar.RefreshVisible来改变UFToolbar上对应按钮状态.如果不想迁移到新的方案〔即把按钮或菜单的数据预置到对应数据库表中的方案〕.可能在按钮状态变换的时候会有一些问题,这时候需要调用UFToolbar.EndRefresh〔即在原来调用RefreshVisible和RefreshEnable的地方调用EndRefresh〕i.Tag对象约定MsToolbar的Tag对象在V11中不再被二次开发和业务组开发使用,请不用随意给按钮或者Menu的Tag赋字符串值,如果要赋值,请构造Tag对象赋值〔不建议使用〕老版本不升级到11.0还想在11.0中使用,一般按钮不会出现问题,但是按钮的下拉菜单可能会有问题〔可能会出现菜单点不出来的情况〕.对于这种情况就需要在构造完MSToolbar 之后,UFToolbar.SetToolbar之前构造每个菜单的Tag属性.代码示例如下但是这种情况下可能UE效果不能达到11.0的效果要求,其他的没有影响.c)多单据控件界面Toolbar方案比如这个设备管理的单子,我们拿一个按钮来说这是设备管理的定位按钮,设备管理上有三个单据控件表头是一个单据控件〔只有表头项〕,表体是两个单据控件,分别记录文档和设备参数.因为表头没有排序定位的按钮,所以可以看到上面预置的数据里面字段iVoucherCtrlIndex分别是1和2,没有0的.〔单据控件上有个属性叫Key.如果一个窗体只有一个单据控件,则Key取默认值0即可.不用额外给单据控件赋Key属性.如果界面有多个单据控件,则必须给每个单据控件赋Key属性.这个界面上表头的单据控件的Key=0,表体文档的那个单据控件的Key=1,设备参数那个单据控件的Key=2〕数据库里面的iVoucherCtrlIndex对应着各个单据控件的Key.将来单据控件上的按钮就靠这个key和cToolbarPosIndex<P/T/B>这两个参数来区分.预置完成数据之后在界面上可以填充数据库数据到窗体的UFToolbar上调用UFToolbar的Settoolbarfromdata方法.可参考[如何使用工具栏控件]中V11.0版本应。
Excel编程高手VBA中的用户界面设计技巧VBA(Visual Basic for Applications)是在Excel中进行编程的一种宏语言,它可以帮助用户实现更高效、更便捷的操作和数据处理。
在Excel编程高手VBA中,用户界面的设计至关重要,影响着用户的交互体验和操作效率。
本文将介绍一些Excel编程高手在VBA中常用的用户界面设计技巧。
一、自定义菜单和工具栏在Excel中,我们可以通过自定义菜单和工具栏,将常用的功能操作集中到一个位置,方便用户快速访问。
通过VBA编程,我们可以自定义菜单项、增加快捷键等等,来实现自定义菜单和工具栏的设计。
例如,我们可以使用`CommandBars`对象、`Controls`属性和`Add`方法来创建自定义菜单和工具栏,并通过`OnAction`方法绑定相应的VBA 代码,实现自定义功能的调用。
二、窗体和对话框设计窗体和对话框是用户界面设计的重要组成部分,可以将复杂的操作和功能以更友好的方式呈现给用户。
在VBA中,我们可以通过`UserForm`对象来设计和显示窗体和对话框。
通过添加各种控件(如文本框、按钮、复选框等),我们可以快速构建一个简洁、美观的用户界面。
在窗体和对话框上,我们可以添加相应的事件代码,实现与用户的交互和数据处理。
三、工作表操作的界面化Excel的主要功能是处理和分析数据,因此,对于Excel编程高手而言,对于工作表操作的界面化设计尤为重要。
通过VBA编程,我们可以在工作表上添加按钮、下拉菜单或者自定义的单元格样式,来实现界面化的工作表操作。
例如,我们可以使用`Range`对象和`Worksheet`对象来实现对单元格数据的读取和写入,并通过`Worksheet_SelectionChange`事件等来实现根据用户选择实时更新数据的功能。
四、错误处理和提示信息在实际使用中,用户界面的设计不能只注重功能的实现,还需要考虑到错误处理和提示信息的展示。
窗体属性设置窗体设计的核心工作是窗体属性设置。
在窗体的诸多属性中,数据源(记录源)属性是最重要的属性,对于数据展示或数据编辑窗体而言,数据源是必须指定的。
1.窗体数据源有两种方法指定窗体数据源:1)在“新建窗体”对话框的“请选择该对象数据的来源表或查询”下拉列表中选择一个表或查询;2)在窗体属性窗口中设置“记录源”属性。
选中窗体对象,然后点击“属性”工具栏按钮或选择“视图”→“属性”菜单;“筛选”属性用于设置筛选条件,为一个关系表达式或逻辑表达式。
筛选属性设置只有在运行窗体时选择了“应用筛选”操作(点击“应用筛选”工具栏按钮或选择“记录”→“应用筛选/排序”)工具栏才实际执行筛选操作;●“排序依据”属性用于设置排序字段序列(用逗号分隔),每个字段后面可以选择排序次序;●“允许筛选”属性设置为“是”,运行窗体时才能执行筛选操作,如果设置为“否”,运行窗体时不能执行筛选操作;●“允许编辑”、“允许删除”、“允许添加”属性均可以选择“是”或“否”,选择“否”时表示不允许相应操作。
“允许编辑”设置为“是”,运行窗体时可以编辑修改已有记录,“允许删除”设置为“是”,运行窗体时可以删除已有记录,“允许添加”设置为“是”,运行窗体时可以添加新记录;●“数据输入”属性用于设置是否是数据录入窗体。
只当“允许添加”设置为“是”时,本属性设置为“是”才起作用,这时窗体只能进行新记录录入;●“抓取默认值”属性设置为“是”时,添加的新记录显示默认值,设置为“否”时,添加新记录不显示默认值。
图5-37为一个实际设置的例子。
图5-37 数据源属性设置2.窗体格式属性设置属性窗口中“格式”选项卡用于设置窗体的显示格式,如窗体主体节显示样式、边框样式、滚动条、图片显示方式等。
“标题”、“默认视图”属性是最重要的格式属性。
“标题”属性用于设置窗体运行时的显示标题,为一文本串。
添加字段及控件1.向窗体添加字段设置了窗体数据源之后,即自动打开字段列表弹出窗口(图5-38)。
delphi trichedit用法Delphi Trichedit用法1. 什么是Delphi TricheditDelphi Trichedit是Delphi提供的一个组件,用于创建和编辑RTF格式的文本。
它支持丰富的文本格式设置和自定义功能,适用于开发各种文本编辑程序。
2. 创建Trichedit控件要使用Delphi Trichedit,首先需要在Delphi的窗体上创建一个Trichedit控件。
你可以在Delphi的组件面板上找到Trichedit控件,并将其拖放到窗体上。
3. 设置Trichedit的属性Trichedit控件具有许多属性,可以通过设置这些属性来控制文本的格式和行为。
以下是一些常用的属性及其说明:•Font:设置文本的字体、字号和样式。
•Color:设置文本的颜色。
•ReadOnly:设置是否只读,如果设置为True,则无法编辑文本。
•WordWrap:设置是否自动换行。
•ScrollBars:设置是否显示滚动条。
•PlainText:获取或设置文本的纯文本内容。
4. 设置文本格式通过Trichedit控件的属性和方法,可以对文本进行格式设置,例如:•SelAttributes:获取或设置当前选中文本的属性,例如字体、字号和颜色。
•Paragraph:设置段落的缩进、对齐方式和行距等属性。
•Lines:获取或设置文本的内容,可以通过添加、删除、插入和替换等方法来编辑文本。
5. 处理事件Trichedit控件还支持各种事件,可以在事件处理程序中编写代码来实现一些自定义功能。
以下是一些常用的事件:•OnChange:文本内容发生改变时触发的事件。
•OnKeyPress:按下键盘按键时触发的事件。
•OnSave:将文本保存到文件时触发的事件。
•OnLoad:从文件加载文本时触发的事件。
6. 导出和导入文本通过使用Trichedit控件的方法,可以将文本导出为RTF格式或纯文本格式,也可以从文件导入文本。
综合练习:实现登陆窗体1、创建一个工程启动VB,在出现的“新建工程”对话框中,单击“打开”按钮,建立一个标准EXE工程。
2、添加标签控件,并修改Caption属性②在窗体设计窗口中拖拽出一个标签在窗体中添加两个标签控件,默认名称分别为Label1和Label2。
在窗体中单击标签Label1,在属性窗口中将Caption属性设置为“用户名:”;在窗体中单击标签Label2,在属性窗口中将Caption属性设置为“密码:”;设置后的效果如图:3、添加文本框控件,将Text属性清空②在窗体设计窗口中拖拽出一个文本框在窗体中添加两个文本框控件,默认名称分别为Text1和Text2。
在窗体中单击文本框Text1,在属性窗口中将Text属性清空。
在窗体中单击文本框Text2,在属性窗口中将Text属性清空。
设置后的效果如图:4、添加按钮控件,修改Caption 属性在窗体中添加两个按钮控件,默认名称分别为Command1和Command2。
②在窗体设计窗口中拖拽出一个按钮在窗体中单击按钮Command1,在属性窗口中将Caption属性设置为“登陆”;在窗体中单击按钮Command2,在属性窗口中将Caption属性设置为“退出”;设置后的效果如图:5、添加代码,实现登陆和退出功能双击按钮Command1,系统自动生成Command1的单击事件在代码窗体中添加如下代码:If Text1.Text = "student" And Text2.Text = "student" ThenMsgBox ("登陆成功")ElseMsgBox ("登陆失败,请检查用户名和密码!")End If单击Command1,如果文本框Text1和Text2中的值全部为student,提示“登陆成功”,否则提示“登陆失败,请检查用户名和密码!”。
上面的代码不需要自己书写,直接复制就可以了。
VB6(Visual Basic 6.0)是微软推出的一种编程语言,它具有结构清晰、易学易用的特点,因此在开发Windows应用程序时被广泛使用。
MDI(Multiple Document Interface)是VB6中常用的一种界面类型,它允许用户在一个父窗体中打开多个子窗体,并且可以方便地在这些子窗体之间进行切换和管理。
在MDI应用程序中操作子窗体是非常常见的需求,如何在VB6中操作MDI子窗体呢?接下来,我们将介绍一些操作MDI子窗体的方法。
一、创建MDI子窗体在VB6中创建MDI子窗体非常简单,只需要在MDI父窗体中添加一个新的子窗体即可。
我们需要在VB6中创建一个MDI项目,然后在MDI父窗体的工具栏中点击“新建子窗体”按钮或者通过编程方式调用"Load"方法来创建一个新的MDI子窗体。
二、操作MDI子窗体的属性和方法在VB6中,我们可以通过操作MDI子窗体的属性和方法来实现对子窗体的管理和控制。
通过设置MDI子窗体的Visible属性可以控制子窗体的显示和隐藏;通过设置MDI子窗体的Title属性可以修改子窗体的标题;通过调用MDI子窗体的Close方法可以关闭子窗体等等。
三、切换和激活MDI子窗体在MDI应用程序中,切换和激活子窗体是非常常见的操作。
在VB6中,我们可以通过调用MDI父窗体的ActiveForm属性来获取当前激活的子窗体,并通过调用MDI子窗体的Activate方法来激活指定的子窗体。
另外,我们还可以通过在MDI父窗体的窗口菜单或者工具栏中添加相应的菜单项或按钮来实现切换和激活子窗体的功能。
四、动态创建和销毁MDI子窗体除了在设计时创建MDI子窗体外,我们还可以在运行时动态地创建和销毁MDI子窗体。
在VB6中,我们可以通过编程方式调用"Load"方法来动态创建新的MDI子窗体,然后通过调用MDI子窗体的Unload 方法来销毁不再需要的子窗体。
vbnet菜单控件用法是一种流行的编程语言,用于开发Windows桌面应用程序。
菜单控件是应用程序中常用的控件之一,用于创建各种类型的菜单,如标准菜单、工具栏菜单和弹出菜单等。
在本篇文章中,我们将介绍菜单控件的用法。
一、菜单控件概述提供了多种菜单控件,包括MenuStrip、MenuBar、ToolStripMenuItem等。
这些控件可以用来创建应用程序的主菜单、子菜单和快捷菜单等。
通过使用菜单控件,开发者可以方便地管理应用程序中的各种功能和选项。
二、菜单控件的创建和使用1.创建菜单控件:在中,可以使用工具箱(Toolbox)中的菜单控件来创建菜单。
可以通过将控件拖放到窗体上,并为其添加控件文本和事件处理程序来创建菜单。
2.添加菜单项:可以使用MenuStrip控件的MenuItems属性来添加菜单项。
可以为每个菜单项设置文本、图标和快捷键等属性。
3.添加子菜单:可以使用MenuStrip控件的DropDownItems属性来添加子菜单。
子菜单可以是另一个MenuStrip控件或者MenuBar控件。
4.事件处理:当用户单击菜单项或执行菜单操作时,会触发相应的事件。
可以通过为菜单控件添加事件处理程序来响应这些事件,执行相应的操作。
三、示例代码下面是一个简单的应用程序,演示了如何使用菜单控件:```vbnetPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesM yBase.Load'创建菜单控件DimmenuBarAsMenuBar=NewMenuBar()Me.Controls.Add(menuBar)'添加标准菜单项DimfileMenuAsNewMenuStrip()menuBar.MenuItems.Add()fileMenu.Text="文件"fileMenu.AutoSize=AutoSizeMode.TruefileMenu.Items.Add("新建")fileMenu.Items.Add("打开")fileMenu.Items.Add("保存")fileMenu.Items.Add("退出")'添加子菜单DimfileSubmenuAsNewMenuStrip()fileMenu.Items.Add("编辑",fileSubmenu)fileSubmenu.Text="编辑"fileSubmenu.AutoSize=AutoSizeMode.TruefileSubmenu.Items.Add("剪切")fileSubmenu.Items.Add("复制")fileSubmenu.Items.Add("粘贴")'绑定事件处理程序AddHandlermenuBar.MouseDown,AddressOfMenuBar_MouseDownEndSubPrivateSubMenuBar_MouseDown(senderAsObject,eAsMouseEventA rgs)'处理菜单事件DimmenuItemAsToolStripMenuItem=CType(sender,ToolStripMenu Item)SelectCasemenuItem.TextCase"新建"'执行新建操作...Case"打开"'执行打开操作...Case"保存"'执行保存操作...Case"退出"'退出应用程序...Case"编辑剪切"'执行剪切操作...Case"编辑粘贴"'执行粘贴操作...EndSelectEndSubEndClass```以上代码创建了一个简单的窗体应用程序,包含一个MenuBar控件和多个菜单项。
ExcelVBA用户窗体编程基础概述当使用MsgBox函数和InputBox函数不能满足与用户交互的需求时,您能使用用户窗体来自定义对话框。
您能使用用户窗体来显示所输入的数据,您甚至能使用用户窗体创建一个完整的用户界面,而不会让用户接触到电子表格本身。
您在Windows对话框中所看到的大多数控件都能在用户窗体中实现——命令按钮,选项按钮,复选框,文本框,组合框——加上一些其它不常用的控件像图像,日历,等等。
本文介绍了用户窗体的基本概念,并介绍了使用用户窗体的常用技术。
其中,也讲解了一些最通用的思路。
在文章中列举了一个包含所有过程的完整的示例文件,以及实现这些过程的代码,让您能在实践中看到所有工作的基本原理和方法。
本文包含以下内容:● 基本的用户窗体操作● 用户窗体和控件的属性● 一个用户窗体的生命周期● 用户窗体和控件的事件● 问题1:如何在用户窗体间传递数据?● 问题2:如何找到我的窗体中的某类控件?● 问题3:如何获取数据到列表框中?● 问题4:如何为循环创建进度条?● 一个完整的用户窗体综合示例基本的用户窗体操作•创建一个窗体。
打开VBE编辑器(选择菜单“工具——宏——Visual Basic编辑器”或按Alt+F11组合键),选择菜单“插入——用户窗体”,或者在工程窗口中单击右键,从弹出的快捷菜单中选择“插入——用户窗体”,即可创建一个窗体。
•添加控件。
当你创建了一个窗体后,将会显示一个名为“控件工具箱”的浮动工具箱(如果没有该工具箱的话,您可以从视图菜单中找到它),其中显示了最普遍的控件类型。
单击您想要的控件,拖动它到您的用户窗体中。
•更多的控件。
有一些更多的可用的控件,您可以在控件工具箱中单击右键,从中选择“附加控件”,您能添加日历、电子表格、图形,等等。
•添加事件程序。
事件允许当用户对窗体和控件进行操作时作出相应的反应,事件程序要放置在用户窗体模块中,您能通过双击窗体或控件来打开代码模块窗口,或者在窗体或控件中单击右键,从快捷菜单中选择“查看代码”来打开代码模块窗口,或者在工程窗口中的用户窗体图标上单击右键后选择“查看代码”来打开代码模块窗口。
文字型窗体域的设置方法一、初识“窗体”工具栏首先需要用到的功能就是“窗体设计”。
在Word中,选择“视图”*“工具栏”*“窗体”,打开“窗体”工具栏(如图3所示)。
也可以右键点击工具栏任意位置,在快捷菜单中选择“窗体”选项。
“窗体”工具栏包含了10个功能按钮,由左至右的功能分别是: 插入文字型窗体域、复选框型窗体域、下拉型窗体域、窗体域选项、绘制表格、插入表格、插入图文框、窗体域底纹、重新设置窗体域以及保护窗体。
二、插入窗体域然后,我们需要在图2表单中插入相应的窗体域。
在实际的应用中,文字型窗体域是最常用的窗体域类型。
在图2的姓名、年龄单元格中,都可以使用此种窗体域。
方法是,首先将光标置于相应的单元格,然后点击“窗体”工具栏中的“文字型窗体域”按钮,插入工作即告完成(如图4所示)。
窗体域插入后,单元格中会显示出一个带有灰色阴影的小方块(说明: 此阴影在按下“窗体域底纹”按钮的情况下才会显示的)。
需要注意的是,窗体域底纹只在屏幕上显示,用于提醒用户该域的具体位置,并不会被打印出来。
文字型窗体域插入之后,如果有特殊的要求,您还可以其属性进行设定。
方法是,单击窗体工具栏上的“窗体域选项”按钮,或者鼠标双击插入的窗体域,即可进入“文字型窗体域选项”对话框(如图5所示)。
文字型窗体域包含了6种类型,分别为常规文字、数字、日期、当前日期、当前时间以及计算。
其中,最常用的当属“常规文字”类型,其次是“数字”类型。
对于“数字”类型的窗体域,用户可以在“数字格式”下拉菜单中定义其具体格式。
另外,在此对话框中,“添加帮助文字”按钮的作用也非常重要,在设计表单时,您可以利用它对用户可能产生疑惑的单元格添加注释和说明。
了解了插入和设定文字型窗体域的方法后,插入其他类型窗体域的方法可以以此类推。
接下来,我们需要重点考虑的是如何选择合适窗体域插入到表单中。
通常比较常用的窗体域还有下拉型窗体域。
这种类型的窗体域通常用于非此即彼的选择场合,例如图2表单的“性别”一栏。
技巧1 在用户窗体上添加工具栏
在错误!未找到引用源。
中我们在用户窗体上使用API函数添加了菜单,还可以在用
户窗体上继续添加工具栏用以显示一列下拉菜单的位图按钮,单击一个工具栏按钮等于选择
一个菜单命令,以提供对常用功能和命令的快速访问。
在用户窗体上添加工具栏可以使用Toolbar控件,在设计模式下右键单击“工具箱”,在显示的右键菜单中选择“附加控件”,在显示的对话框中选择“Microsoft Toolbar Control,veision 6.0”控件,在用户窗体上添加一个Toolbar控件。
如图1-1所示。
图1-1 选择Toolbar控件
因为需要在Toolbar控件按钮中使用图标,所以还需要在用户窗体中添加一个ImageList 控件保存所需要的图像文件,在ImageList控件的属性页中插入6张图片,如图1-2所示。