在vb.net 中,picturebox轮流显示几个图片的问题
在vb.net中,我想用picturebox轮流显示几个图片,当点击时更换图片。现在我不知道如何判断当前显示的是哪一张图片,因为我想有顺序的更换图片...
在vb.net 中,我想用picturebox轮流显示几个图片,当点击时更换图片。现在我不知道如何判断当前显示的是哪一张图片,因为我想有顺序的更换图片
展开
展开全部
你的图片名称可以用 1.jpg,2.jpg ...... n.jpg来命名,存放在一个文件夹下,文件夹放在应用程序安装包,或者运行的相对位置。代码就好写了
在事件外public int i;
在事件里面
if(i<i)
{
i++; //累加顺序读取
pictureBox1.Image=Image.LoadFile(Application.StartUpPath + "/文件夹名/" + i.ToString() + ".jpg")
}
else
{
i=1; //初始化
}
这样就是按顺序读取图片。
当然折中办法很笨拙,因为图片名称写成数字很别扭,而且后缀也不完全一样,所以我们尽量用查询DB办法或者查找文件办法。数组是很慢的也很老土。把图片名称存在表里面,表里面查到哪个名称就加载那张图片就行了,简单了事,或者给图片在表里安排一列索引,用索引去查名称,加载出来就可以了。
在事件外public int i;
在事件里面
if(i<i)
{
i++; //累加顺序读取
pictureBox1.Image=Image.LoadFile(Application.StartUpPath + "/文件夹名/" + i.ToString() + ".jpg")
}
else
{
i=1; //初始化
}
这样就是按顺序读取图片。
当然折中办法很笨拙,因为图片名称写成数字很别扭,而且后缀也不完全一样,所以我们尽量用查询DB办法或者查找文件办法。数组是很慢的也很老土。把图片名称存在表里面,表里面查到哪个名称就加载那张图片就行了,简单了事,或者给图片在表里安排一列索引,用索引去查名称,加载出来就可以了。
更多追问追答
追问
是的,我的图片名字是用数字的,不过不在外面,在Resources里面,也可以用LoadFile加载吗
怎么记住是哪一张呢,用户可以记住,但是程序记住要用全局变量,不科学。因此想用判断的方式,但是如何判断现在是哪一张,这是我的问题。
我用的加载图片的代码:picture1.image=My.Resources.02
另外你的代码是vb.net的吗,我的方法没有Image.LoadFile,我用的2010版的
追答
怎么不可以啊,直接把图片名称查不来就好了,根据图片名称和路径不就可以加载图片吗。加载图片有固定的语法,你那语句是错的,你需要循环读数据库里的图片名称,图片不需要用数字,直接用名称就好了,查到图片名称就根据图片名和路径去加载图片很简单的啊。
我是觉得VB6.0比VB.NET好用多了,C#.NET和C++.NET都要比VB.NET好用。
展开全部
1,添加控件的PictureBox和控制定时器1定时器Interval属性设置为1000(1秒),Enabled属性更改为True
假设你想通过四个周期,你可以添加下面的代码来实现:
>暗淡了作为整数= 0
私人小组Timer1_Tick(BYVAL发件人作为System.Object的级:作为)处理Timer1.Tick
如果= 4然后
= 0 BR />其他
= A + 1
最后如果
如果= 0,然后Me.PictureBox1.Image =中Image.FromFile(“1.jpg产品”)
如果= 1,然后Me.PictureBox1.Image = Image.FromFile(“2.JPG”)
如果= 2 Me.PictureBox1.Image = Image.FromFile(“3.JPG”;)
如果= 3然后Me.PictureBox1.Image = Image.FromFile(“4.JPG”)
结束小组
假设你想通过四个周期,你可以添加下面的代码来实现:
>暗淡了作为整数= 0
私人小组Timer1_Tick(BYVAL发件人作为System.Object的级:作为)处理Timer1.Tick
如果= 4然后
= 0 BR />其他
= A + 1
最后如果
如果= 0,然后Me.PictureBox1.Image =中Image.FromFile(“1.jpg产品”)
如果= 1,然后Me.PictureBox1.Image = Image.FromFile(“2.JPG”)
如果= 2 Me.PictureBox1.Image = Image.FromFile(“3.JPG”;)
如果= 3然后Me.PictureBox1.Image = Image.FromFile(“4.JPG”)
结束小组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先定义一个全局变量,然后在加载图片时,根据图片顺序,给这个变量赋值。
Dim n as integer
.....
picture1.image=My.Resources.02
n=2
Dim n as integer
.....
picture1.image=My.Resources.02
n=2
更多追问追答
追问
我就是用的这种方法,不过全局变量多了就容易乱,所以想直接得到现在加载的是哪张图片
追答
只有这个办法,而且这个办法特别容易实现。至于你说乱的问题,解决办法就是添加详细注释。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把图片放到哪里了?可以把图片地址放到一个数组里面,然后轮流的时候记录显示到第几个数组元素了
追问
再建立一个数组盛放图片?那图片多了是不是要占用很多内存呢,我还是用全局变量吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
记住显示的是哪一张就可以了,你显示的代码是啥?
更多追问追答
追问
怎么记住是哪一张呢,用户可以记住,但是程序记住要用全局变量,不科学。因此想用判断的方式,但是如何判断现在是哪一张,这是我的问题。
我用的加载图片的代码:picture1.image=My.Resources.02
追答
另设置一个变量记住就是
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询