Dim Ran1 As New Random()
创新互联建站是一家专注网站建设、网络营销策划、微信小程序定制开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立10余年以来,已经为上1000+成都水电改造各业的企业公司提供互联网服务。现在,服务的上1000+客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
Public jpgfile As New List(Of Bitmap)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Timer1.Interval = 50
Ran1 = New Random(Date.Now.ToOADate)
For Each i As IO.FileInfo In New IO.DirectoryInfo("I:\我的文档\Images\1280X800").GetFiles("*.jpg")
Dim pic As New Bitmap(i.FullName)
‘ jpgfile.Add(New Bitmap(pic, pic.Size.Width / 8, pic.Size.Height / 8))’将图片同比缩小到8分之一。
Next
Me.BackColor = SystemColors.Control
Me.TransparencyKey = SystemColors.Control
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.WindowState = FormWindowState.Maximized
‘窗体全屏,并设置无边框窗体。
Timer1.Enabled = True
End Sub
在Timer1_Tick的过程中
Me.CreateGraphics.DrawImage(pic, New Point(x, y))
在窗体的以x、y为左上角位置绘制图片。xy用random随机数随机产生,上下值分别在0-me的大小宽高之间。
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dim n As Integer = Ran1.Next(0, jpgfile.Count - 1)
Dim pic As Bitmap = jpgfile(n)
Dim x As Integer = Ran1.Next(50, Me.Size.Width - pic.Size.Width - 50)
Dim y As Integer = Ran1.Next(50, Me.Size.Height - pic.Size.Height - 50)
Me.CreateGraphics.DrawImage(pic, New Point(x, y))
End Sub
当程序运行的时候你可以将窗体作为Form的背景图,然后创建一个类,类继承Picture,然后用一个线程不停的创建这个类,再使用Form中的鼠标点击事件,或者退出程序,或者清除掉所有的类
我晕。。。
1楼,楼主说的是类似手机桌面,不是说些手机程序(虽然.net确实可以写手机程序(蛋疼。。))
2楼,为啥不直接改变容器的Left。。。。
切入正题,大致思路:
用一个容器,如Panel来盛装所有控件,Panel的MouseMove事件中通过e.Button判断左键按下来实现拖动的效果,然后在计时器中更改Panel的Location。(这样做很简单,但效率非常低)
要流畅的话,就自己写一个容器控件,内部的子控件全部自己绘制(实现一些轻量级的控件类),不过工作量较大
你是没有对你的桌面进行刷新吧,在下一张图片显示之前应该刷新一下你的桌面,不然是不会擦出上一张图片的