[VB.NET]图片浏览器

来源:互联网 发布:linux 更改home空间 编辑:程序博客网 时间:2024/05/01 20:03
图片浏览器

实例说明

在本实例中,我们将创建一个能够浏览图片内容的应用程序。当选中所要显示的图片文件名时,应用程序就会显示出图片的内容。运行结果如图66-1所示。

<script type="text/javascript"><!--google_ad_client = "pub-8333940862668978";/* 728x90, 创建于 08-11-30 */google_ad_slot = "4485230109";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

图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

■ 运行程序

单击菜单"调试|启动"或单击 图标运行程序。

小结

通过本实例,我们掌握了文件管理控件的使用方法和设置文件列表框过滤文件的方法。并通过滚动条来实现大图浏览,达到浏览全图的目的。同时,我们也设置一个缩放图形的选项,可以使图形的大小适应控件的大小,从而更方便使用。

原创粉丝点击