双色球随机选号器界面设计及功能实现
生活随笔
收集整理的這篇文章主要介紹了
双色球随机选号器界面设计及功能实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 雙色球隨機選號器界面設計
- 1.1 雙色球隨機選號器界面設計
- 2 雙色球隨機選號器代碼實現
- 2.1 項目文件結構
- 2.2 代碼實現
1 雙色球隨機選號器界面設計
1.1 雙色球隨機選號器界面設計
效果如下:
2 雙色球隨機選號器代碼實現
2.1 項目文件結構
項目文件結構如下:
2.2 代碼實現
DoubleChromosphere.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace xiketang.com.LotteryPro {/// <summary>/// 雙色球類/// /// 作用:主要是用來封裝數據/// </summary>public class DoubleChromosphere{//public string Red1Number { get; set; }//public string Red2Number { get; set; }//public string Red3Number { get; set; }//public string Red4Number { get; set; }//public string Red5Number { get; set; }//public string Red6Number { get; set; }//public string Blue7Number { get; set; }請大家自學完課程后,可以嘗試分開保存兩種球的數字//public List<string> RedNumbers { get; set; }//public List<string> BlueNumbers { get; set; }//今天我們授課:把紅色球和藍色球放到一塊public List<string> Numbers { get; set; }} }Selector.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace xiketang.com.LotteryPro {/// <summary>/// 選號器類/// </summary>public class Selector{//紅色球池public List<string> RedNumberList { get; set; }//藍色球池public List<string> BlueNumberList { get; set; }//存儲選擇的號碼public List<DoubleChromosphere> SelectedNums { get; set; } = new List<DoubleChromosphere>();private Random random = new Random();//隨機數生成器(只在本類內部使用)/// <summary>/// 構造方法:初始化球池的數字/// </summary>public Selector(){RedNumberList = new List<string>{"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33"};BlueNumberList = new List<string>{"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16"};}/// <summary>/// 生成7個隨機不同的號碼/// </summary>/// <returns></returns>public List<string> CreateRandomNum(){List<string> numList = new List<string>();//生成6個紅色球while (true){if (numList.Count == 6) break;//如果隨機選取了6個數字了,則退出循環string num = RedNumberList[random.Next(33)];if (numList.Contains(num)) continue;//如果是重復的數字,則重新隨機抽取else{numList.Add(num);} }//生成一個藍色球numList.Add(BlueNumberList[random.Next(16)]);return numList;}//打印、遠程保存等(我們在深入的VIP系統學習中再講解...)//這些方法,都會用到我們所保存的《已選擇號碼》} }FrmMain.cs:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing; using System.Linq; using System.Text; using System.Windows.Forms;namespace xiketang.com.LotteryPro {public partial class FrmMain : Form{//創建選號器對象private Selector newSelector = new Selector();//每次得到的隨機數List<string> randomNum = null;public FrmMain(){InitializeComponent();this.btnSelect.Enabled = false;}#region 拖動和關閉窗體private Point mouseOff;//鼠標移動位置變量private bool leftFlag;//標簽是否為左鍵private void FrmMain_MouseDown(object sender, MouseEventArgs e){if (e.Button == MouseButtons.Left){mouseOff = new Point(-e.X, -e.Y); //得到變量的值leftFlag = true; //點擊左鍵按下時標注為true;}}private void FrmMain_MouseMove(object sender, MouseEventArgs e){if (leftFlag){Point mouseSet = Control.MousePosition;mouseSet.Offset(mouseOff.X, mouseOff.Y); //設置移動后的位置Location = mouseSet;}}private void FrmMain_MouseUp(object sender, MouseEventArgs e){if (leftFlag){leftFlag = false;//釋放鼠標后標注為false;}}private void btnClose_Click(object sender, EventArgs e){this.Close();}#endregion//啟動選號private void btnStart_Click(object sender, EventArgs e){this.timerCreateNum.Start();//啟動定時器this.btnSelect.Enabled = true;this.btnStart.Enabled = false;}//定時器事件:每隔50ms調用一次private void timerCreateNum_Tick(object sender, EventArgs e){//通過調用選號器,得到隨機數randomNum = newSelector.CreateRandomNum();//在下面的列表中顯示this.lblNum1.Text = randomNum[0];this.lblNum2.Text = randomNum[1];this.lblNum3.Text = randomNum[2];this.lblNum4.Text = randomNum[3];this.lblNum5.Text = randomNum[4];this.lblNum6.Text = randomNum[5];this.lblNum7.Text = randomNum[6];}//選擇private void btnSelect_Click(object sender, EventArgs e){this.timerCreateNum.Stop();this.btnSelect.Enabled = false;this.btnStart.Enabled = true;//創建雙色球對象DoubleChromosphere dc = new DoubleChromosphere{//Numbers = new List<string>()//{// this.lblNum1.Text,// this.lblNum2.Text,// this.lblNum3.Text,// this.lblNum4.Text,// this.lblNum5.Text,// this.lblNum6.Text,// this.lblNum7.Text//}Numbers = this.randomNum //我們因為已經保存了當前的一組數字,所以可以直接復制};//添加到選號池,以備后面的打印、遠程保存等方法使用this.newSelector.SelectedNums.Add(dc);//顯示號碼string num = string.Empty;foreach (string item in this.randomNum){num += item + " ";}this.lbNumberList.Items.Add(num);}//清除private void btnDel_Click(object sender, EventArgs e){this.newSelector.SelectedNums.Clear(); //從集合中清除this.lbNumberList.Items.Clear();//從列表中清除}//確認購買:需要保存到遠程數據庫或服務器(也可以通過webapi遠程提交)private void btnConfirm_Click(object sender, EventArgs e){//首先打印//遠程保存}} }參考資料:
總結
以上是生活随笔為你收集整理的双色球随机选号器界面设计及功能实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在Panel中嵌入子窗体
- 下一篇: 指针基本概念分析