Winform小软件 —— 摇奖机

代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace 摇奖机
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Control.CheckForIllegalCrossThreadCalls = false;
            
            //Form的相关“属性”设置:
            this.FormBorderStyle = FormBorderStyle.None;
            this.TransparencyKey = Color.Yellow; //将某颜色设置为透明
            this.BackgroundImage = new Bitmap("Images/Transball.bmp");
        }

bool isFormMove = false; //是否移动
        int x, y;        //获得鼠标初始位置

//鼠标按下
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                isFormMove = true;
                x = e.X;
                y = e.Y;
            }
        }
        //鼠标移动
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isFormMove)
            {
                //获得鼠标当前位置
               Point p = Form.MousePosition;
               //鼠标当前位置 - 鼠标初始位置 = 窗体要移动的位置
               this.Location = new Point(p.X - x, p.Y - y);
            }
        }
        //鼠标释放
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            isFormMove = false;
        }

/*
         * 问题:
         * 在Form里加了一个Button后,Form的KeyPress事件在按下Enter键时就不能触发了?
         * 解决方案:
         * 重写该方法实现,扩展ProcessDialogKey方法调用Form1_KeyPress事件 */
        protected override bool ProcessDialogKey(Keys keyData)
        {
            if (keyData == Keys.Return)
            {
                //this.KeyPreview = true;
                KeyPressEventArgs myKeyPressEventArgs = new KeyPressEventArgs(Convert.ToChar(keyData));
                Form1_KeyPress(this, myKeyPressEventArgs);
            }
            return base.ProcessDialogKey(keyData);
        }

int n = 1;
        Thread thread1, thread2, thread3, thread4, thread5, thread6;
        
        //按键事件
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (n % 2 == 1)
            {
                n++;
                thread1 = new Thread(randomLabelText);
                thread1.Start(this.label1);
                thread1.Join(10); //让别的线程停止

thread2 = new Thread(randomLabelText);
                thread2.Start(this.label2);
                thread2.Join(5); //让别的线程停止

thread3 = new Thread(randomLabelText);
                thread3.Start(this.label3);
                thread3.Join(7);

thread4 = new Thread(randomLabelText);
                thread4.Start(this.label4);
                thread4.Join(14);

thread5 = new Thread(randomLabelText);
                thread5.Start(this.label5);
                thread5.Join(3);

thread6 = new Thread(randomLabelText);
                thread6.Start(this.label6);
                thread6.Join(13);

}
            else
            {
                thread1.Abort(); thread2.Abort(); thread3.Abort();
                thread4.Abort(); thread5.Abort(); thread6.Abort();

label7.Text = "中奖号码:" + label1.Text + "  " + label2.Text + "  " + label3.Text;
                label7.Text += "  " + label4.Text + "  " + label5.Text + "  " + label6.Text;
                n--;
            }
        }

//产生随机数给Label控件
        private void randomLabelText(object obj)
        {
            Label lb = obj as Label;
            Random rand = new Random();
            while (true)
            {
                int i = rand.Next(0, 10);
                lb.Text = i.ToString();
                Thread.Sleep(100);
            }
        }

private void button1_MouseClick(object sender, MouseEventArgs e)
        {
            Application.Exit();
        }
    }
}

作者: XuGang   网名:钢钢
出处: http://xugang.cnblogs.com
声明: 本文版权归作者和博客园共有!转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

转载于:https://www.cnblogs.com/stevenjson/archive/2012/04/17/2454598.html

Winform小软件 —— 摇奖机相关推荐

  1. HTML: 网页摇奖机(抽号机)

    HTML: 网页摇奖机(抽号机) 背景 一.需求分析 二.网页设计 1.界面设计 a. 取色 b.标题和背景 c.按钮与输入框 2.随机数逻辑设计 3.完整代码 三.效果展示 总结 背景 前两天回了趟 ...

  2. java swing写的双色球摇奖机

    最近没什么事,翻看以前的博客,看到在学校那会写的小程序,那时学软件开发的目的就是做GUI啊,现在这些仍是兴趣之一 偶然发现eclipse luna自带有一个windowbuilder,一个java 可 ...

  3. 用C#(入门) 双色球摇奖机 随机数实现

    这两天在深入学习C#.NET,正好同事做发财梦吵着去买彩票,于是心血来潮,利用昨晚工作空闲,写了一个双色球摇奖机的桌面程序. 程序在我的google论坛里了.下载地址如下(有点长:)): http:/ ...

  4. 摇奖机是按照金字塔的原理设计的

    摇奖机是按照金字塔的原理设计的 摇奖机是按照金字塔的摇奖机是按照金字塔的原理设计的 摇奖机是按照金字塔的原理设计的 众所周知,摇奖机其实就是一台人工控制的计算机.双色球单次的销量如果不超过3000万元 ...

  5. 一点关于线程和摇奖机

    一点关于线程和摇奖机 怎么说呢.第一呢.还是说一下什么是进程吧.进程呢就是一个正在执行的实例.它包含着一个运行程序需要的所有资源,进程之间是相互独立的,一个进程是没办法直接访问另外一个进程的数据的.然 ...

  6. 网页摇奖机(抽号机)2.0

    网页摇奖机(抽号机)2.0 背景 一.改进需求分析 二.改进代码 1.前端修改 2.后端修改 三.完整代码 走过路过点个赞赞吧QwQ! 背景 话说上回,我帮高中老师做了个抽号机,然后: 现在老师们的花 ...

  7. IOS开发基础之摇奖机案例

    IOS开发基础之摇奖机案例 // ViewController.m // 33-摇奖机器 // Created by 鲁军 on 2021/3/9. #import "ViewControl ...

  8. 【C51单片机】抽号摇奖机设计(仿真)

    1.功能描述 单片机连接12864(st7920)液晶显示器和1个按键接INT0,模拟一个抽奖机. 液晶初始显示"祝你好运!": 按一下按键,液晶显示"开始抽奖" ...

  9. 电子摇奖机电路的设计仿真与制作——数电课设(包含PCB文件)

    文章目录 前言 一.课程设计任务书 二.摘要 三.正文 1.绪论 1.1设计背景 1.2 2.电子摇奖机设计方案及单元电路 2.1电子摇奖机总体设计方案 2.2单元电路设计方案 2.2.1脉冲产生电路 ...

最新文章

  1. java 数组 反射_java数组的反射
  2. java上传文件图片
  3. Java黑皮书课后题第3章:**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形。编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内
  4. Socket.io 深入理解
  5. oracle的错误代码如何查看对应的错误信息
  6. [Angularjs]angular ng-repeat与js特效加载先后导致的问题
  7. 多项式加减 List
  8. php检索特定的关键字的函数,javascript、php关键字搜索函数的使用方法
  9. 功能测试用例设计方法,一文带你了解用例设计,再也不担心用例了
  10. 2022苹果ios个人开发中注册遇到的问题
  11. Ubuntu16.04 启动项修复
  12. android获取手机的国家码
  13. 【探花交友DAY 08】左滑不喜欢右滑喜欢以及附近的人
  14. JAVA|圆周长、面积
  15. Python Matplotlib教程
  16. 【内核隔离开启内存完整性已关闭不兼容的驱动程序驱动程序卸载】
  17. 线性回归预测波士顿房价
  18. project server 2016的应用
  19. HTML——图片压缩
  20. 如何搭建卫星地图离线地图服务?

热门文章

  1. 正确激活笔记本电池的方法
  2. 打破企业内部“部门墙”
  3. linux 找不到g09,科学网—如何在非用户目录下安装高斯 g09 - 陈照强的博文
  4. linux串口卡驱动下载,PCI串口卡万能驱动官方版
  5. 数字乡桥—乡桥桥梁安全检测系统
  6. 乔布斯的3个工作技巧:教你如何得到自己想要的
  7. Word拆分生成多个文档与合并多个文档
  8. Kotlin设计模式实现之策略模式
  9. 层次选择器(父子、后代、兄弟、相邻)
  10. 华为mate 30 安装时提示安装包解析失败