[VB.NET]图片浏览器
图片浏览器
实例说明 在本实例中,我们将创建一个能够浏览图片内容的应用程序。当选中所要显示的图片文件名时,应用程序就会显示出图片的内容。运行结果如图66-1所示。 图66-1 运行结果 技术要点 l 过滤图片文件 l 文件管理控件的使用(Drive,List,File控件) l 滚动条的使用 l 缩放图片 实现步骤 ■ 新建项目 打开Visual Studio.NET,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中选择"Windows应用程序",在名称域中输入"PicViewer",然后选择保存路径。单击"确认"。 ■ 添加控件 向当前窗体上添加一个DriveListBox控件,一个DirListBox控件,一个FileListBox控件,用来确定图形文件的位置。另外添加两个Picture控件,用于控制图形的显示。另外是一个CheckBox用于控制是否按照控件大小缩放图形,一个Button按钮用来退出程序。还需要添加一个HscrollBar控件和一个VscrollBar控件,当图片不缩放时,且图片大小超出显示区域时,则HscrollBar控件和VscrollBar控件可用。 ■ 设置属性 切换到"属性栏",对控件进行属性设置,详细情况见表66-1。 表66-1 控件属性值 窗体/控件 属性 值 Check1 Value 1-Checked VscrollBar1 Name vsc HscrollBar1 Name hsc Picture1 Name Picview Button1 Text 退出 Picture11 Sizemode StretchImage ■ 添加代码 '是否缩放图形 Private Sub Check1_CheckStateChanged(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles Check1.CheckStateChanged If Check1.CheckState Then '如果是,则需要重新设置Image控件的大小,否则不能正确显示 Image1.Left = 0 Image1.Top = 0 Image1.Height = picview.Height - 10 Image1.Width = picview.Width - 10 '设置缩放属性为真 Image1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage ShowPic() Else Image1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Normal ShowPic() End If End Sub '退出应用程序 Private Sub Button1_Click(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles Button1.Click Me.Close() End Sub '当目录改变时,文件显示也作相应的改变 Private Sub Dir1_Change(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles Dir1.Change File1.Path = Dir1.Path '如果有图片的话,则显示第一个图片 If File1.FileName = "" Then Exit Sub Else picview.BackgroundImage = System.Drawing.Image.FromFile("") End If End Sub '当驱动器改变时,目录作相应的改变 Private Sub Drive1_SelectedIndexChanged(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles Drive1.SelectedIndexChanged Dir1.Path = Drive1.Drive End Sub '单击文件时,显示图片 Private Sub File1_SelectedIndexChanged(ByVal eventSender As System.Object,ByVal eventArgs As System.EventArgs) Handles File1.SelectedIndexChanged ShowPic() End Sub Sub ShowPic() '如果没有图片,则退出 If File1.FileName = "" Then Exit Sub End If Image1.Image = System.Drawing.Image.FromFile(File1.Path & "/" & File1.FileName) '将图片的高和宽与picview的高和宽进行比较,如果都小于,则不显示滚动条 If Image1.Width > picview.Width Then '如果宽大于picview的宽,则显示水平滚动条 Image1.Left = 0 hsc.Visible = True hsc.Value = 0 hsc.Maximum = Image1.Width - picview.Width + hsc.LargeChange - 1 hsc.SmallChange = Image1.Width / 20 hsc.LargeChange = Image1.Width / 10 Else Image1.Left = (picview.Width - Image1.Width) / 2 hsc.Visible = False End If '如果高大于picview的高,则显示垂直滚动条 If VB6.PixelsToTwipsY(Image1.Height) > VB6.PixelsToTwipsY(picview.Height) Then Image1.Top = VB6.TwipsToPixelsY(0) vsc.Visible = True vsc.Value = 0 vsc.Maximum = Image1.Height - picview.Height + vsc.LargeChange - 1 vsc.SmallChange = Image1.Height / 20 vsc.LargeChange = Image1.Height / 10 Else Image1.Top = (picview.Height - Image1.Height) / 2 vsc.Visible = False End If End Sub '横向移动滚动条 Private Sub hsc_Scroll(ByVal eventSender As System.Object,ByVal eventArgs As System.Windows.Forms.ScrollEventArgs) Handles hsc.Scroll Select Case eventArgs.Type Case System.Windows.Forms.ScrollEventType.EndScroll Image1.Left = eventArgs.NewValue End Select End Sub '纵向移动滚动条 Private Sub vsc_Scroll(ByVal eventSender As System.Object,ByVal eventArgs As System.Windows.Forms.ScrollEventArgs) Handles vsc.Scroll Select Case eventArgs.Type Case System.Windows.Forms.ScrollEventType.EndScroll Image1.Top = eventArgs.NewValue End Select End Sub ■ 运行程序 单击菜单"调试|启动"或单击 图标运行程序。 小结 通过本实例,我们掌握了文件管理控件的使用方法和设置文件列表框过滤文件的方法。并通过滚动条来实现大图浏览,达到浏览全图的目的。同时,我们也设置一个缩放图形的选项,可以使图形的大小适应控件的大小,从而更方便使用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |