当前位置:文档之家› 第七章表单与控件的设计

第七章表单与控件的设计

对齐一组控件:利用布局工具栏上的按钮,很容易精确排列表单上的 控件。例如,可能想使一组控件水平对齐或垂直对齐,或使一组相 关控件具有相同的宽度或高度。要对齐控件,可先选定一组控件, 然后在【布局】工具栏上选择一个布局按钮。
7.1.3 表单与控件的事件驱动模型 VFP中的事件包括用户事件和系统事件。用户事件是
thisform.width=thisform.width+50 else
thisform.width=150 endif if thisform.height<600
thisform.height=thisform.height+30 else
thisform.height=150 endif ⑥在名称栏找到【KeyPress Event】,双击它,打开代码窗口,输入以下代码: thisform.release 按键事件的代码含义是释放表单,结束程序运行。 ⑦ 保存表单,命名为:formExample2.scx
5)保存和运行表单
在【文件】菜单中选择【保存】,或者按工
具栏中的【保存】按钮,或者直接按组合键: Ctrl+S(保存);Ctrl+W(保存并退出)。均 可以保存表单文件。在【另存为…】对话框中输 入这个表单文件的名称。默认为“表单1”。
表单设计好后,可以运行它以测试它的功能。
运行表单的方法有两种。一种是通过【表单】菜 单中的【执行表单】(热键是:Ctrl+E);另一 种是在命令窗口执行命令:do form <表单文件 名>
单文档界面 (SDI) 应用程序由一个或多个独立窗口组成,这些 窗口均在 Windows 桌面上单独显示。
子表单的默认容器(父窗口)是VFP屏幕(Screen)。如果希望 子表单的容器是顶层表单,可以将表单的 ShowWindow 属性设置 为:1-在顶层表单中。
如果选择多文档界面 (MDI),可设置表单的 MDIForm 属性为 “真”(.T.)。默认是假。
4)手工添加控件
在表单控件工具栏中单击一个控件按钮,然 后在表单中,单击鼠标左键,该控件就被添加到 表单中。通常,需要对这种控件设置属性或者编 写事件驱动程序。
可以同时添加多个相同控件。具体操作如下: 单击【按钮锁定】,单击一个需要添加的控件, 如文本框,然后在表单区域的不同位置,单击鼠 标,就自动产生多个文本框控件。要关闭按钮锁 定,可再次单击【按钮锁定】。
移动控件:直接用鼠标拖动控件到新的位置。
改变控件的大小:选择控件,拖动尺寸控点,以增加或减少该控件的 长度、宽度或整体尺寸。
复制控件:选择控件,从【编辑】菜单中选择【复制】。再选择【粘 贴】。允许多次【粘贴】同一个控件。粘贴后生成的控件需要移动 到合适的位置上。
删除控件:选择控件,按【Delete】,或者从【编辑】菜单中选择 【剪切】。
第七章 表单与控件设计
7.1表单设计方法与步骤
VFP 的可视化开发环境将 Windows 编程的复杂性隐蔽起来,使得 开发者可以将主要精力放在实现应用功能上,从而大大提高了应用 软件的开发效率。VFP表单实际是软件的窗口界面。在VFP可视化 开发环境下建立应用软件的一般步骤是: 建立一个表单或者表单集,设置他们的外观尺寸,以形成Windows 软件界面; 为表单(集)设置数据环境,数据环境规定表单与数据表的相关性; 根据软件功能要求,在表单中分配一些控件对象。原则是美观、清 晰、符合操作习惯; 设置每一个控件的关键属性值,如:外观特征、数据控制源、标题、 是否可见等; 设置表单中各个控件的默认操作顺序; 设计对象的事件驱动程序,也就是这些事件一旦发生,将完成什么 功能; 将其他的菜单、工具栏与表单或表单集联系在一起,用一个主程序 驱动,就构成一个完整的Windows应用程序。
在主窗口的【显示】菜单中选择【数据环境】, 将打开数据环境设计器窗口。第一次打开数据环境 设计器窗口时,要求打开一个数据表。可以向数据 环境设计器窗口添加、移去数据表或者视图。
完成数据环境的设置后,数据设计器窗口就会显 示可用的表和字段。常用控件的控制源属性 (ControlSource)就会显示可用的表和字段。例 如文本框控件的ControlSource。
AutoSize 确定是否根据标题的长度来调整显 示宽度。默认不能自动调整显 示宽度。
FontName 设置标签中文本的字体名
WordWrap FontSize
确定标签上显示的文本能否换行。 默认不能。
设置标签中文本的字体大小
ForeColo 设置标签中文本的前景色 r
BackColor 设置标签中文本的背景色
2)动表单将表单的 Desktop 属性设置为“真”(.T.)。默认是假。
3)层表单
表单的 ShowWindow 属性设置为“2 - 作为顶层表单”。
在顶层表单中显示子表单的具体方法是:首先创建顶层表 单;在顶层表单的事件代码中包含 DO FORM 命令,指定要显 示的子表单的名称。例如,在顶层表单中建立一个按钮,然后 编写按钮的 Click 事件代码:
7.1.1 用表单设计器创建表单的主要步骤
表单的创建可以采用两种方法:表单向导和表单设计器。表单向 导可以建立两种固定格式的表单:为单个表创建操作数据的表单和为 两个相关表创建操作数据的表单。表单向导可以帮助初学者直观认识 表单的形成,但没有实用价值。
1)启动表单设计器新建表单
在项目管理器中选择【文档】选项卡中的【表单】选项,再单击【新 建】按钮,在出现的【新建表单】对话框中选择【新建表单】按钮。
else thisform.left=0
endif thisform.caption=‘!!!!!中国必胜 !!!!!’ ④同时按Ctrl+W保存并退出代码窗口;
操作步骤:
⑤在名称栏找到【Dbclick Event】,双击它,打开代码窗口,输入以下代码: thisform.caption='??? 还没有进球 ???' if thisform.width<800
一个表单在运行期自动产生的主要“系统事件”触 发顺序,即表单与控件的事件驱动模型。
【例7.2】利用表单的标题、宽度、高度、左边距设计一个标题和尺 寸逐步变化的窗口。运行该程序后,显示一个表单,标题是:form1。 在窗口内单击鼠标,窗口往左移,标题改为“中国必胜” ;在窗口 内双击鼠标,窗口标题改为“还没有进球”,同时尺寸改变。在键盘
⑧ 运行这个表单。
7.1.4 设置表单类型 1)子表单
子表单是VFP的默认表单类型,一般不需要另外设置。但对于较高 级的应用,需要附带说明子表单的容器和VFP应用程序种类。VFP将 应用程序分为:
多文档界面 (MDI) 各个应用程序由单一的主窗口组成,且应用 程序的窗口包含在主窗口中或浮动在主窗口顶端。例如Visual FoxPro 自身基本上是一个 MDI 应用程序。
【例 7.1】 快速建立一个显示和修改“学生档案表”部分信息的窗口程序。
操作步骤
打开表单设计器,新建一个表单; 打开数据环境设计器,添加数据表“ 学生档案表”; 复选表中的字段:学号、姓名、性别、专业班级(具体
方法是按住键:Ctrl,再鼠标单击对应的字段名称); 拖动它们到表单中(靠左上位置),自动形成一个“表
大多数的情况是用户需要输入自由数据,这些数据的类型和内容不可能 事先预设。这种情况下可以使用文本框、编辑框和组合框。 允许用户执行特定的命令
应用程序总是由很多功能组成的,可以使用命令按钮和命令按钮组执行 命令,调用这些功能。 在给定的时间间隔内执行特定的命令
应用程序有时需要非人工执行一些命令,要么是在指定时间执行,要么 是在一定的时间间隔执行。比如每隔1分钟显示一条广告。可以使用计时器。 显示信息
DO FORM MyChild 在显示子表单时,顶层表单必须是可 视的、活动的。因此,不能使用顶层表单的 Init 事件来显示子 表单,因为此时顶层表单还未激活。
ห้องสมุดไป่ตู้
7.2 常用控件设计
控件设计的基本原则是: 为用户提供一组预先设定的选择
确保数据库数据有效性的最直接方法之一,就是为用户提供一组预先设 定的选项。控制用户的选择,可以保证在数据库中不存储无效数据。可以使 用选项按钮组、列表框、下拉列表框和复选框,为用户提供一组预先设定的 选择。 接受不能预先设定的用户输入
在主窗口的【文件】菜单中选择【新建】命令,则出现【新建】对话 框,在该对话框中选择【表单(F)】按钮,再单击【新建文件】按 钮。
在命令窗口输入:create form
以上三种方法都可以打开表单设计器,同时打开一个默认表单 文件,初始表单名称是“form1” 。
2)设置数据环境
通过把与表单相关的表或视图放进表单的数据 环境中,可以自动建立控件与表或视图中的字段关 联,方便表单设计和运行期间的数据管理。
【例 7.1】 快速建立一个显示和修改“学生档案表”部分信息的窗口程序。
设计界面
运行结果
7.1.2 编辑表单中的控件
在设计表单的过程中,需要频繁编辑其中的控件,先用以下 三种方法打开一个表单文件及表单设计器。
在项目管理器中选择【文档】、选择【表单】、选中一个表单 名,选择【修改】
在【文件】菜单中选择【打开…】、在【打开】对话框中选择 【文件类型】为【表单(*.scx)】、在文件列表中选择一个表 单文件、按【确定】
VFP提供了丰富的信息显示手段。可以使用图象、标签、文本框、编辑 框等显示信息。
7.2.1标 签(label)
标签用于在表单中显示某些固定不变的文本信息。如要改变它
一些属性,可以通过相关对象的事件代码来实现。一个标签最多可 纳256字符。
属性
说明
属性
说明
Caption 标签显示的文本内容。字符型。 BackStyle 确定标签是否透明。默认不透明。
相关主题