其次要定义一个全局变量的数组用来存储对应数字的相应图片,如Array[0]="hhwer.gif"
这个数组也可以用ImgList
控件代替.
这下基础的就做好了,用时间类Timer来控制.
设置好它的Interval属性.
点击开始则Timer.Enable=true
停止就False
在Timer的间隔到达事件中
做一个6次循环,
流程如下:
循环开始(for(var
N=0N<6N++))
获取随机数
R
修改第N个显示框的值为R
修改第N个pictureBox的图片路径=R对应的图片路径(Array[N].ToString())
循环结束
修改
摇奖结果的值
左边的图片路径存储在LeftList里面(假定存储的是图片路径),右边的图片路径存储在RightList里面。左边PictureBox的点击事件使得LeftList指向下一个图片路径,同时将原图片路径添加到RightList中并在右边的PictureBox里面显示。
这样应该可以解决问题,具体的细节楼主可以试着写一下看看。
由于Panel采用系统支持的绘图模式, 所以你直接在上面绘图很有可能被系统重绘覆盖. 我帮你修改了绘图函数, 在Panel的BackGroundImage上绘图, 见代码:using System
using System.Collections.Generic
using System.ComponentModel
using System.Data
using System.Drawing
using System.Text
using System.Windows.Forms
using System.Drawing.Drawing2D
namespace WindowsApplication1.els
{
public partial class els : Form
{
public Color[] mycolor = new Color[] { Color.Black, Color.Brown }
public Point mypoint
public Pen mypen = new Pen(Brushes.Black)
public els()
{
InitializeComponent()
draw()
}
void draw() //修改的绘图函数
{
Image im = new Bitmap(this.panelEx1.Width, this.panelEx1.Height)
Graphics g = Graphics.FromImage(im)
GraphicsPath gp = new GraphicsPath()
Rectangle rec = new Rectangle(new Point(30, 30), new Size(100, 30))
gp.AddRectangle(rec)
PathGradientBrush pb = new PathGradientBrush(gp)
pb.CenterColor = Color.Blue
pb.SurroundColors = mycolor
g.DrawRectangle(mypen, rec)
g.FillPath(pb, gp)
this.panelEx1.BackgroundImageLayout = ImageLayout.Stretch
this.panelEx1.BackgroundImage = im
}
}
}
已经调试通过, 希望对你有帮助.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)