zoukankan      html  css  js  c++  java
  • WinForm图片抽奖器

    闲着蛋疼,写个抽奖器玩玩。
    界面:2个按钮(一个开始,一个停止),一个label显示当前抽中人的姓名或者编号,一个定时器。
    原理:在窗体加载的时候,首先加载好在配置文件设置的文件夹内的所有图片保存在一个List中,并且设置好timer的时间,最好是短一点,10-20毫秒之内。在timer的Tick事件中,随机指定一个路径。

    详细代码:界面的布局就 省了。
    配置文件

    <configuration>  
    <appSettings >  
    <add key="picPath" value="F:\Sample\winform\clock"/>  
    </appSettings>  
    </configuration>

    Load事件

    timer1.Enabled = false;//默认不启用定时器  
                         
      timer1.Interval = 15;//定时器触发间隔时间,毫秒为单位  
                         
                         
      string path = ConfigurationManager.AppSettings["picPath"].ToString();//获取配置文件的图片路径,可以考虑用OpenFileDialg....  
                         
      string[] fs = Directory.GetFiles(path);//获取该路径下的所有文件名  
                         
    //遍历所有文件,匹配是图片的文件  
                         
      for (int i = 0; i < fs.Length; i++)  
                         
      {  
                         
          if (Path.GetExtension(fs[i]).ToLower() == ".jpg")//该处为默认扩展名,根据具体情况而定  
                         
          {  
                         
              photo.Add(fs[i]);//如果是图片文件,则将该文件路径添加到全局的ArrayList中  
                         
          }  
                         
      }

    开始按钮和停止按钮事件

    //开始按钮事件  
          
    private void button1_Click(object sender, EventArgs e)  
          
            {  
          
                timer1.Enabled = true;//启用定时器  
          
            }  
          
    //停止按钮事件  
          
            private void button2_Click(object sender, EventArgs e)  
          
            {  
          
                timer1.Enabled = false;//停用定时器  
          
            }

    最后一个是重点的定时器Tick事件

    private void timer1_Tick(object sender, EventArgs e)  
        
          {  
        
             //产生一个随机数,随机数的范围为0-文件总数  
        
              Random rand = new Random();  
        
             int i= rand.Next(photo.Count);  
        
             pictureBox1.ImageLocation = photo[i].ToString();//指定PicBox的文件路径为随机的路径  
        
            //以下代码为截取文件名,不包括后缀,实际应用中,可能是姓名等其他唯一的命名。  
        
             string filename = Path.GetFileName(photo[i].ToString());//  
        
             int index = filename.LastIndexOf('.');  
        
             label1.Text = filename.Substring(0, index);  
        
          }

    最后来个界面截图瞧瞧

    本文从百度空间搬家到博客园。。

    邮箱:yunanwu@foxmail.com 微博:@提灯寻影(http://weibo.com/wuyunnan) 技术主页:http://www.cnblogs.com/yuanawu/ 可以白手起家不可手无寸铁!我是我命运的主宰者,我是我灵魂的掌舵人! 每一次的选择都将是一个挑战!
  • 相关阅读:
    vue如何实现热更新
    vue项目与node项目分离
    vue如何实现热更新
    Vue项目SSR改造实战
    找工作Java面试 题搜集
    html5绘图笔记纪要
    HTML5实现绘制几何图形
    浅谈html5在vr中的应用
    浏览器三种事件处理的模型
    基于html5二个div 连线
  • 原文地址:https://www.cnblogs.com/yunanwu/p/4168572.html
Copyright © 2011-2022 走看看