第11章 实用扩展控件 11.1 RichTextBox控件 11.2 TreeView和ListView控件 11.3 其他扩展控件 结束
11.1 RichTextBox控件 概述 11.1.1 设置字体格式 11.1.2 设置段落格式 11.1.3 使用剪贴板 11.1.4 查找文本 11.1.5 打开与保存文件 返回首页
概述 RichTextBox控件又称为多格式文本框,使用该控件不仅可以输入和编辑文本,还可以对控件中任何部分的文本设置不同的格式,如对选定文本设置字体、字号、字形、颜色、下划线、删除线等。此外,在该控件中还可以设置左右缩进和悬挂式缩进等段落格式,插入图片,并以RTF和纯文本两种格式打开和保存文件。 加载RichTextBox控件的方法:右击工具箱,在弹出菜单中选择【部件】菜单项,打开【部件】对话框,在【控件】选项卡的列表中选中“Microsoft Rich Textbox Control 6.0”前面的复选框,单击【确定】按钮。此时工具箱中将增加该控件的图标 。 返回本节 返回首页
11.1.1 设置字体格式 (1) 下面通过实例说明如何设置RichTextBox控件中选定文本的字体格式。 新建工程,在窗体上添加一个RichTextBox和一个CommonDialog控件,均采用默认名称。将RichTextBox控件的ScrollBars属性设为2。再添加一个命令按钮,名称为cmdFont,Caption属性为“字体”。以下是按钮单击事件过程的代码:
11.1.1 设置字体格式 (2) Private Sub cmdFont_Click() On Error GoTo Quit With CommonDialog1 '设置通用对话框相关属性 '显示所有字体和效果选项 .Flags = cdlCFBoth Or cdlCFEffects '设置对话框默认字体名称 If .FontName = "" Then .FontName = "宋体" ' 对用户单击“取消”按钮做出响应 .CancelError = True .ShowFont '打开字体对话框 End With '设置RichTextBox控件中选定文本字体格式 With RichTextBox1
11.1.1 设置字体格式 (3) '字体名称(字符串型) .SelFontName = CommonDialog1.FontName .SelFontSize = CommonDialog1.FontSize '字号(整型) .SelBold = CommonDialog1.FontBold '粗体(布尔型) .SelItalic = CommonDialog1.FontItalic '斜体(布尔型) '下划线(布尔型) .SelUnderline = CommonDialog1.FontUnderline '删除线(布尔型) .SelStrikeThru = CommonDialog1.FontStrikethru .SelColor = CommonDialog1.Color '颜色(长整型) End With Quit: End Sub
11.1.1 设置字体格式 (4) 在上述代码中,首先利用通用对话框控件打开字体对话框,用户在对话框中设置格式并确认后,通过代码中的第二个With...End With语句块将RichTextBox控件中的选定文本格式设置为由字体对话框返回的各种格式。代码中RichTextBox控件的7个以“Sel”为前缀的属性(代表选定文本的各种格式)分别由字体对话框的对应属性赋值。代码中的注释说明了各属性的含义。程序运行效果如图11.1所示。
11.1.1 设置字体格式 (5) 图11.1 设置字体格式 返回本节 返回首页
11.1.2 设置段落格式(1) 1. 段落缩进 RichTextBox控件的SelIndent、SelRightIndent和SelHangingIndent属性分别用于设置选定段落的左缩进、右缩进和悬挂缩进,均为整型数值。缩进量的单位与窗体的ScaleMode属性有关,默认单位为缇(1厘米=567缇)。 【例11.2】设置段落缩进。在例11.1中的窗体上增加一个按钮,Caption属性为“左缩进”,在该按钮的单击事件过程中加入以下代码:
11.1.2 设置段落格式(2) 2. 段落对齐方式 Dim sMargin As Single 用同样的方法可设置右缩进和悬挂缩进。 sMargin = Val(InputBox("输入缩进量(厘米):", _ "左缩进")) RichTextBox1.SelIndent = sMargin * 567 用同样的方法可设置右缩进和悬挂缩进。 2. 段落对齐方式 RichTextBox控件的SelAlignment属性用于设置选定段落的对齐方式。将该属性值设为常数rtfLeft或0为左对齐,rtfRight或1为右对齐,rtfCenter或2为居中。
11.1.2 设置段落格式(3) 3. 项目符号 将RichTextBox控件的SelBullet属性设为True即可为选定段落添加项目符号,若同时设置BulletIndent属性,则可指定含有项目符号的段落的缩进量(默认单位为缇)。 提示:可将设置字体和段落格式的功能汇集在“格式”菜单中。 段落格式设置效果如图11.2所示。 返回本节 返回首页
11.1.3 使用剪贴板 (1) RichTextBox控件的SelRTF属性含有当前选定的RTF格式文本。利用SelRTF属性和剪贴板(Clipboad)对象可以实现多格式文本的剪切、复制和粘贴操作。 1. 操作多格式文本 剪贴板对象的SetText方法用于向剪贴板传送文本。以下代码可将多格式文本复制到剪贴板: Clipboard.Clear '清空剪贴板 '向剪贴板传送RTF文本 Clipboard.SetText RichTextBox1.SelRTF, _ vbCFRTF
11.1.3 使用剪贴板 (2) 剪切操作与复制相似,只需在上述代码之后加入以下代码: 11.1.3 使用剪贴板 (2) 剪切操作与复制相似,只需在上述代码之后加入以下代码: '删除RichTextBox控件中的选定内容 RichTextBox1.SelText = "" 剪贴板对象的GetText方法用于从剪贴板中粘贴文本。例如: RichTextBox1.SelRTF = Clipboard.GetText(vbCFRTF) 将上述代码分别置于对应菜单项的单击事件中即可实现剪切、复制和粘贴功能。
11.1.3 使用剪贴板 (3) 2. 插入图片 利用LoadPicture函数、剪贴板对象的SetData方法和模拟键盘输入的SendKeys语句可以在RichTextBox控件中插入图片。 【例11.3】利用剪贴板在RichTextBox控件中插入图片。效果如图11.3所示。 在例11.2中添加一个命令按钮或菜单项,在它的单击事件过程中输入以下代码:
11.1.3 使用剪贴板 (4) '利用通用对话框选择图片文件 CommonDialog1.ShowOpen 11.1.3 使用剪贴板 (4) '利用通用对话框选择图片文件 CommonDialog1.ShowOpen Clipboard.Clear '清空剪贴板 '将图片文件发送到剪贴板 Clipboard.SetData _ LoadPicture(CommonDialog1.FileName) RichTextBox1.SetFocus '模拟组合键Ctrl+V从剪贴板粘贴图片 SendKeys "^v", True Clipboard.Clear 返回本节 返回首页
11.1.4 查找文本 (1) RichTextBox控件的Find方法用于搜索特定字符串。若找到待查内容则将其反相显示,并返回其位置;若未找到则返回-1。Find方法的调用格式为: RichTextBox控件名称.Find(待查字符串[,起始位置,结束位置,选项]) 【例11.4】在RichTextBox控件中查找文本。 在例11.3中添加两个菜单项或命令按钮,标题(Caption)分别为“查找”和“查找下一个”。将RichTextBox控件的HideSelection属性设为False,以便在控件失去焦点时仍可反相显示找到的字符串。
11.1.4 查找文本 (2) 在代码编辑窗口的“通用-声明”部分声明一个窗体级的变量用于存放待查内容: Dim strFind As String 下面是“查找”菜单项单击事件过程的代码: 'mnuFind为“查找”菜单项的名称 Private Sub mnuFind_Click() strFind = InputBox("输入查找内容", "查找") If strFind = "" Then Exit Sub 'Find方法返回-1说明未找到 If RichTextBox1.Find(strFind) = -1 Then MsgBox "未找到“" & strFind & "”。", _ vbInformation, "提示" strFind = "" End If End Sub
11.1.4 查找文本 (3) 在“查找下一个”菜单项或按钮的单击事件过程中加入以下代码: Dim lngL As Long '若为首次查找则调用“查找”过程 If strFind = "" Then Call mnuFind_Click Else With RichTextBox1 lngL = .SelLength .SelStart = .SelStart + lngL
11.1.4 查找文本 (4) If .Find(strFind,,Len(.TextRTF))= -1 Then .SelStart = .SelStart - lngL .SelLength = lngL MsgBox "查找结束。", vbInformation, "提示" End If End With 返回本节 返回首页
11.1.5 打开与保存文件 (1) RichTextBox控件的LoadFile和SaveFile方法分别用于装载和保存文件。文件格式可以是文本文件或RTF文件。下面通过实例说明这两个方法的调用。 【例11.5】在RichTextBox控件中打开和保存文件。 在例11.4中添加一个顶层菜单“文件”,在该菜单下添加“打开”和“保存”两个菜单项。“打开”菜单项单击事件过程的代码如下:
11.1.5 打开与保存文件 (2) Private Sub mnuOpen_Click() '打开文件 On Error GoTo Quit With CommonDialog1 .CancelError = True .Filter = "文本文件(*.txt)|*.txt " _ & "|RTF文件(*.rtf)|*.rtf" .ShowOpen If UCase$(Right$(.FileName, 3)) = "RTF" Then '打开RTF文件 RichTextBox1.LoadFile .FileName, rtfRTF Else '打开文本文件 RichTextBox1.LoadFile .FileName, rtfText End If
11.1.5 打开与保存文件 (3) “保存”菜单项单击事件过程的代码如下: End With Quit: End Sub Private Sub mnuSave_Click() On Error GoTo Quit With CommonDialog1 .CancelError = True .Filter = "文本文件(*.txt)|*.txt" _ & "|RTF文件(*.rtf)|*.rtf" .ShowSave
11.1.5 打开与保存文件 (4) 返回本节 返回首页 '设置默认扩展名,在用户未输入扩展名时使用 If .FilterIndex = 1 Then .DefaultExt = "txt" Else .DefaultExt = "rtf" End If If UCase$(Right$(.FileName, 3)) = "RTF" Then '保存文件为RTF格式 RichTextBox1.SaveFile .FileName, rtfRTF '保存文本文件 RichTextBox1.SaveFile .FileName, rtfText End With Quit: End Sub 返回本节 返回首页
11.2 TreeView和ListView控件 11.2.1 TreeView控件 11.2.2 ListView控件 TreeView 和 ListView均为Microsoft Windows Common Controls 6.0中的控件,需要加载后方可 使用,加载方法与RichTextBox控件相似。 返回首页
11.2.1 TreeView控件 (1) 1. 理解Node对象与Nodes集合 在讨论TreeView控件的应用之前应当对Node对象和Nodes集合有所了解。TreeView控件中的每个列表项都是一个Node对象(节点),节点可包含文本和图片。节点之间的关系可以是父子关系或兄弟关系。 图11.4 TreeView控件 如图11.4所示,系与其班级之间为父子关系,各系之间为兄弟关系(位于同一层次),一个系中的班级之间也是兄弟关系。
11.2.1 TreeView控件 (2) 系是班级的父节点(Parent),班级是系的子节点(Child)。各系均为顶层节点,顶层节点没有父节点(Nothing)。控件中的所有Node对象构成Nodes集合,集合中的每一个Node对象具有一个惟一的索引(下界为1),利用索引可以访问集合中的Node对象。例如,TreeView1.Nodes(1)是指集合中的第一个节点。
11.2.1 TreeView控件 (3) 2. 添加节点 Nodes集合的Add方法用于添加节点。调用格式为:
11.2.1 TreeView控件 (4) “关系”是指新节点与“相关节点”的位置关系,该参数的取值常数为:tvwFirst,tvwLast,tvwNext,tvwPrevious或tvwChild,分别对应整数0~4。其中tvwChild为父子关系,即新节点是“相关节点”的子节点。其他常数均为兄弟关系,即新节点与“相关节点”位于同一层次,分别为首位、末位、后邻位和前邻位。如果省略了“相关节点”参数,则在所有顶层节点之后添加一个新节点,并且忽略“关系”参数。Add方法的其他参数均不难理解。
11.2.1 TreeView控件 (5) 【例11.6】在TreeView控件中建立系和班级的分层列表。 新建工程,在窗体上添加一个TreeView控件和一个ImageList控件,均采用默认名称。添加两个命令按钮,设Cpation属性分别为“添加系”和“添加班级”。按第10章所述方法在ImageList控件中添加4个图片。右击TreeView控件,在弹出菜单中选择【属性】菜单项,打开如图11.5所示的【属性页】对话框,在对话框的【图像列表】中选择ImageList1,设【线条样式】为1,单击【确定】按钮关闭对话框。
11.2.1 TreeView控件 (6) 图11.5 TreeView控件属性页
11.2.1 TreeView控件 (7) 在“添加系”按钮的单击事件过程中加入以下代码: Dim mNode As Node '声明节点对象变量 '若省略Add方法的第一个参数,则在所有顶层节点之后 '添加一个新的顶层节点,同时忽略Add方法的第二个参数。 '下面一行语句中的"1,2"为ImageList控件中的图片索引。 Set mNode = TreeView1.Nodes.Add(, , , "X系", 1, 2) '添加节点并为变量赋值 mNode.Selected = True ' 选中新节点 '使新节点标签处于编辑状态以便用户修改 TreeView1.StartLabelEdit
11.2.1 TreeView控件 (8) 在“添加班级”按钮的单击事件过程中加入以下代码: '若控件中无节点退出此过程 If TreeView1.Nodes.Count = 0 Then Exit Sub Dim mNode As Node '声明节点对象变量 Dim iIndex As Integer '若未选择节点将出错,转错误处理语句 On Error GoTo NodeErr '取当前选定节点的索引 iIndex = TreeView1.SelectedItem.Index
11.2.1 TreeView控件 (9) '若选定的节点是"系"节点(无父节点)则添加子节点, '否则添加兄弟节点 If TreeView1.Nodes(iIndex).Parent Is Nothing Then Set mNode = TreeView1.Nodes.Add(iIndex, _ tvwChild, , "X级X班", 3, 4) Else tvwLast, , "X级X班", 3, 4) End If mNode.EnsureVisible '使新节点可见 mNode.Selected = True '选中新节点 '使新节点标签处于编辑状态以便用户修改 TreeView1.StartLabelEdit
11.2.1 TreeView控件 (10) 程序运行效果如图11.6和图11.7所示。 Exit Sub NodeErr: '处理错误 MsgBox "请先选择一个系。", vbExclamation, "提示" 程序运行效果如图11.6和图11.7所示。 图11.6 添加系 图11.7 添加班级
11.2.1 TreeView控件 (11) 3. 删除和清空节点 Nodes集合的Remove方法和Clear方法分别用于删除和清空节点。 【例11.7】扩展例11.6的功能,使之能够删除和清空节点。 在例11.6中添加两个按钮,Caption分别为“删除”和“清空”。在“删除”按钮的单击事件过程中加入以下代码:
11.2.1 TreeView控件 (12) 在“清空”按钮的单击事件过程中加入以下代码: '若控件中无节点退出此过程 If TreeView1.Nodes.Count = 0 Then Exit Sub Dim iIndex As Integer '取当前选定节点的索引 iIndex = TreeView1.SelectedItem.Index '删除选定节点及其子节点 TreeView1.Nodes.Remove iIndex 在“清空”按钮的单击事件过程中加入以下代码: TreeView1.Nodes.Clear '清除所有节点 返回本节 返回首页
11.2.2 ListView控件(1) ListView控件可使用大图标、小图标、列表和报表(详细资料)四种不同视图显示列表项。Windows资源管理器的右窗格就是ListView控件的典型例子。 1. ListView控件的四种视图 ListView控件的View属性决定它的视图显示方式,有4种取值。将该属性值设为常数lvwIcon或0为大图标,lvwSmallIcon或1为小图标,lvwList或2为列表,lvwReport或3为详细资料。四种视图显示模式如图11.8~图11.11所示。
11.2.2 ListView控件(2) 图11.8 大图标视图 图11.9 小图标视图
11.2.2 ListView控件(3) 图11.10 列表视图 图11.11 详细资料视图
11.2.2 ListView控件(4) 2.理解ListView控件中的对象与对象集合 (1)ListItem对象与ListItems集合 ListView控件中的每个列表项都是一个ListItem对象,列表项可包含文本和图片。控件中的所有ListItem对象构成ListItems集合,集合中的每个对象具有惟一索引。在程序代码中调用ListItems集合的Add方法可以在控件中添加列表项,调用格式为: ListView控件名.ListItems.Add([索引, 关键字, 文本, 大图标, 小图标])
11.2.2 ListView控件(5) (2)ColumnHeader对象与ColumnHeaders集合 在如图11.11所示的详细资料视图中,第一行的标题【姓名】、【性别】和【年龄】即为ColumnHeader对象(列标头)。控件中的所有ColumnHeader对象构成ColumnHeaders集合。在列标头下面,左起第一列是在各种视图中均可显示的列表项,列表项右侧的各列均为列表子项(SubItem)。每个列表项可以有多个子项,它们构成子项数组(SubItems),数组类型为字符串型,下界为1,上界为列标头总数-1。
11.2.2 ListView控件(6) 调用ColumnHeaders集合的Add方法可以添加列标头,调用格式为: 添加列标头后将自动确定列表子项数组的上界,此时可以为子项数组元素赋值。
11.2.2 ListView控件(7) 3. 在ListView控件中使用图片 ListView控件中所用的图片由ImageList控件提供。一个ListView控件可以使用三个ImageList控件,分别提供大图标、小图标(供小图标、列表和详细资料视图使用)和列标头图标。在设计时可以通过ListView控件的属性页指定ImageList控件。程序运行时可以通过代码指定要使用的ImageList控件,例如: Set ListView1.Icons = Imagelist1 '大图标 Set ListView1.SmallIcons = Imagelist2 '小图标 '列标头图标 Set ListView1.ColumnHeaderIcons = Imagelist3
11.2.2 ListView控件(8) 【例11.8】设计如图11.8~图11.11所示的ListView控件的不同视图。 新建工程,在窗体上添加一个ListView控件和两个ImageList控件(本例中未使用列标头图标),均采用默认名称。创建一个含有四个元素的单选按钮数组,名称均为optView,索引为0~3,设Style属性均为1,Cpation属性分别为“大图标”、“小图标”、“列表”和“详细资料”。ImageList控件和ListView控件的属性分别通过图11.12和图11.13所示的属性页设置。
11.2.2 ListView控件(9) 图11.12 ImageList属性页 返回
11.2.2 ListView控件(10) 图11.13 ListView属性页 返回
11.2.2 ListView控件(11) 右击ImageList1,在弹出菜单中选择【属性】菜单项,打开如图11.12所示的【属性页】对话框,在【通用】选项卡中选择【32 x 32】单选钮(此步骤设置图像大小),然后切换到【图像】选项卡添加4个图片。用同样的方法将ImageList2的图像大小设为【16 x 16】并添加图片。右击ListView控件,在弹出菜单中选择【属性】菜单项,打开如图11.13所示的【属性页】对话框,切换到【图像列表】选项卡,在【普通】组合框中选择ImageList1,在【小图标】组合框中选择ImageList2。
11.2.2 ListView控件(12) 在窗体的Load事件中对ListView控件进行初始化: Private Sub Form_Load() '添加列标头。数字为宽度(缇) ListView1.ColumnHeaders.Add , , "姓名", 1200 ListView1.ColumnHeaders.Add , , "性别", 800 ListView1.ColumnHeaders.Add , , "年龄", 800 Dim itmX As ListItem '声明列表项对象变量 Set itmX = ListView1.ListItems.Add(, , _ "张三", 1, 1) '添加列表项 '设置子项,供“详细资料”视图使用 itmX.SubItems(1) = "男" itmX.SubItems(2) = 20 '添加其他列表项 …… End Sub
11.2.2 ListView控件(13) 利用单选按钮的单击事件切换视图,代码如下: 返回本节 返回首页 '用单选按钮控件数组切换视图 Private Sub optView_Click(Index As Integer) '4个单选按钮的索引号为0~3,恰好与ListView控件 ' View属性的4个常数值相对应, '因此用单选钮的索引号为ListView控件的View属性赋值 '可简化代码。 ListView1.View = Index End Sub 返回本节 返回首页
11.3 其他扩展控件 11.3.1 SSTab控件 11.3.2 ProgressBar控件 11.3.3 DateTimePicker控件 返回首页
11.3.1 SSTab控件 (1) SSTab控件提供一组选项卡,每个选项卡都可作为其它控件的容器。 该控件在Microsoft Tabbed Dialog 6.0部件中,加载后才能使用。 【例11.9】制作如189页图11.14和图11.15所示含有两个选项卡的用户界面。 图11.14 基本情况选项卡 图11.15 附加信息选项卡
11.3.1 SSTab控件 (2) 在窗体上添加一个SSTab控件,右击该控件,在弹出菜单中选择【属性】菜单项,打开如图11.16所示的【属性页】对话框。在对话框中将【选项卡数】设为2,将【样式】设为1。在【选项卡标题】文本框中输入第一个选项卡的标题“基本情况”。单击“>”按钮,输入第二个选项卡的标题“附加信息”。单击【确定】按钮关闭对话框。 根据图11.14和图11.15为两个选项卡分别添加相关控件并设置属性。其中,【基本情况】选项卡中用于输入姓名的文本框名称为txtName,【附加信息】选项卡中用于显示姓名的标签名称为lblName。
11.3.1 SSTab控件 (3) 图11.16 SSTab控件属性页
11.3.1 SSTab控件 (4) 在SSTab控件的单击事件中加入以下代码: 返回本节 返回首页 Private Sub SSTab1_Click(PreviousTab As Integer) 'Tab属性返回当前活动选项卡的索引(下界为0) If SSTab1.Tab = 1 Then '若单击“附加信息”选项卡 lblName.Caption = "姓名: " & txtName.Text End If End Sub 返回本节 返回首页
11.3.2 ProgressBar控件 (1) 在应用程序中,当执行一个耗时较长的操作时,可用ProgressBar控件(进度条)显示事务的进程。ProgressBar属于Microsoft Windows Common Controls 6.0中的控件,需要加载后使用。 ProgressBar控件有三个最重要的属性Min、Max和Value。Min和Max用于设置进度条的起点和终点。Value属性用于在运行时设置或返回进度条的填充量。在显示某操作的进展情况时,可以将Value值设为从Min值开始递增,直到由Max属性定义的最大值为止。下面通过实例说明该控件的使用。
11.3.2 ProgressBar控件 (2) 【例11.10】用进度条和定时器控件模拟数据处理的进度,如图11.17所示。 在窗体上添加一个框架Frame1,设其Caption属性为空,Visible属性为False。在框架中添加两个标签,均采用默认名称。设Label1的Caption属性为“正在处理数据,请稍候...”。 图11.17 进度条
11.3.2 ProgressBar控件 (3) 输入以下代码: Dim intValue As Integer '窗体级变量用于存放进度值 Private Sub cmdStart_Click() '“开始”按钮 intValue = 0 ProgressBar1.Value = 0 '进度条初始化 Frame1.Visible = True '显示框架及其中的进度条等控件 Timer1.Enabled = True '启动定时器 cmdStart.Enabled = False '使"开始"按钮无效 End Sub
11.3.2 ProgressBar控件 (4) 返回本节 返回首页 Private Sub Timer1_Timer() '定时器事件 intValue = intValue + 1 '累加进度值 If intValue > 100 Then '若超过最大值 Timer1.Enabled = False '关闭定时器 MsgBox "数据处理结束。", vbInformation, "提示" Frame1.Visible = False '隐藏框架及其中的控件 cmdStart.Enabled = True '设"开始"按钮有效 Else '设置Value属性值,显示进度 ProgressBar1.Value = intValue '显示进度百分比 Label2.Caption = intValue & "%" End If End Sub 返回本节 返回首页
11.3.3 DateTimePicker控件 (1) DateTimePicker控件(DTPicker)可以按指定格式显示日期或时间,并且作为修改日期和时间信息的界面。该控件属于Microsoft Windows Common Controls-2 6.0中的控件,加载后方可使用。 DateTimePicker控件有两种不同的显示模式: ① 下拉日历模式。单击控件右部的下拉箭头可显示日历,用于选择日期。 ② 时间显示模式。用于显示或设置时间。可在控件中选择一个域(时、分、秒)后,用控件右部的上下箭头设置其值,亦可通过键盘输入数字或按箭头键设置其值。
11.3.3 DateTimePicker控件 (2) 通过DateTimePicker控件的Format(格式)属性可以设置日期或时间的显示格式。 Format属性有4种取值:设为常数dtpLongDate或0为长日期格式,dtpShortDate或1为短日期格式,dtpTime或2为时间格式,dtpCustom或3为自定义格式。当Format属性值为0或1时,控件以下拉日历模式显示日期;Format属性值为2时,以时间模式显示时间。当Format属性值为3时,控件的显示模式取决于CustomFormat(自定义格式)属性和UpDown(上下箭头)属性。若CustomFormat属性为日期格式字符串,且UpDown属性为False,则为下拉日历模式。若CustomFormat属性为时间格式字符串,且UpDown属性为True,则为时间显示模式。
11.3.3 DateTimePicker控件 (3) 【例11.11】使用DateTimePicker控件选择日期并设置时间,当到达预定的日期和时间时提示用户。 在窗体上添加两个DateTimePicker控件DTPicker1和DTPicker2,分别用于设置日期和时间。右击DTPicker1,在弹出菜单中选择【属性】菜单项,打开如图11.18所示的【属性页】,在【通用】选项卡中将【格式】设为3-dtpCustom,将【自定义格式】设为“yyy-M-d”(yyy为完整年份)。用同样的方法将DTPicker2的【格式】设为2-dtpTime。
图11.18 DateTimePicker控件属性页 返回
11.3.3 DateTimePicker控件 (5) 在两个DateTimePicker控件的上方各添加一个标签,用作简单说明。添加一个文本框和两个命令按钮,按钮的Caption属性分别为“确定”和“退出”。添加一个Timer控件,设其Enabled属性为False,Interval属性为500。 在“确定”按钮的单击事件过程中加入以下代码: Text1.Text = "提示日期:" _ & Format(DTPicker1.Value, _ "yyyy年m月d日") _ & vbCrLf & "提示时间:" _ & TimeValue(DTPicker2.Value) Timer1.Enabled = True
11.3.3 DateTimePicker控件 (6) 在Timer1控件的Timer事件中加入以下代码: If DateValue(DTPicker1.Value) = Date _ And TimeValue(DTPicker2.Value) _ = Time Then MsgBox "时间到。" Timer1.Enabled = False End If 说明:DateTimePicker控件的Value属性用于返回或设置日期和时间。
11.3.3 DateTimePicker控件 (7) 程序运行效果如图11.19和图11.20所示。在图11.19中,单击控件的下拉箭头显示日历,单击年份和月份可修改年月,单击日历中的某个日期即完成设定。在图11.20中,单击时间模式控件中的上下箭头可设置时间。 图11.19 下拉日历 图11.20 设置时间 返回本节 返回首页 结束