winform 抽奖程序

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.IO;
using Skins.Common;

namespace lucy
{
    public partial class jiang : Skins.Common.MainForm
    {
        bool go = false;
        int a = 0;
        int jiangxiang = 1;
        int erdengjiang = 1;
        int sandengjiang = 1;
        
        ArrayList arr1 = new ArrayList();
        public main main2 = null;
        public jiang(string title,main main1)
        {
            main2 = main1;
            InitializeComponent();
            this.Text = title;
            this.qqLabel1.Text = title;
            if (title == "抽取一等奖")
            {
                jiangxiang = 1;
                qqPanel1.Visible = true;
                qqPanel1.BringToFront();
            }
            else if (title == "抽取二等奖")
            {
                jiangxiang = 2;
                qqPanel2.BringToFront();
                qqPanel2.Visible = true;
                
            }
            else if (title == "抽取三等奖")
            {
                jiangxiang = 3;
                qqPanel3.BringToFront();
                qqPanel3.Visible = true;

            }
            qqButton1.Click += new EventHandler(qqButton1_Click);
        }

        void qqButton1_Click(object sender, EventArgs e)
        {
            if (jiangxiang == 1)
            {
                if (qqButton1.Text == "开始")
                {
                    timer1.Enabled = true;
                    if (a == 0)
                    {
                        Random ran = new Random();
                        a = ran.Next(0, main.arr.Count - 1);
                    }
                    go = true;
                    qqButton1.Text = "停止";
                }
                else
                {
                    main.arr.Remove(yidengjiang.Text);
                    go = false;
                    main2.zhong1.Text = yidengjiang.Text;
                    MsgBoxForm msg1 = new MsgBoxForm("一等奖中奖用户为" + yidengjiang.Text, "一等奖中奖用户", MessageBoxButtons.OK, MessageBoxIcon.None);
                    msg1.ShowDialog();
                    if (msg1.DialogResult == DialogResult.OK)
                    {
                        this.Close();
                        main2.qqComboBox1.SelectIndex = 1;
                    }
                }
            }
            else if (jiangxiang == 2)
            {
                if (qqButton1.Text == "开始")
                {
                    timer1.Enabled = true;
                    if (a == 0)
                    {
                        Random ran = new Random();
                        a = ran.Next(0, main.arr.Count - 1);
                    }
                    go = true;
                    qqButton1.Text = "抽取第一位二等奖用户";
                }
                else if (qqButton1.Text == "抽取第一位二等奖用户")
                {
                    erdengjiang += 1;
                    main.arr.Remove(yidengjiang1.Text);
                   
                    
                    qqButton1.Text = "抽取第二位二等奖用户";
                }
                else if (qqButton1.Text == "抽取第二位二等奖用户")
                {
                    erdengjiang += 1;
                    main.arr.Remove(yidengjiang2.Text);
                   
                   
                    qqButton1.Text = "抽取第三位二等奖用户";
                }
                else if (qqButton1.Text == "抽取第三位二等奖用户")
                {
                    erdengjiang += 1;
                    main.arr.Remove(yidengjiang3.Text);
                    
                    
                    qqButton1.Text = "抽取第四位二等奖用户";
                }
                else if (qqButton1.Text == "抽取第四位二等奖用户")
                {
                    erdengjiang += 1;
                    main.arr.Remove(yidengjiang4.Text);
                    
                    
                    qqButton1.Text = "抽取第五位二等奖用户";
                }
                else if (qqButton1.Text == "抽取第五位二等奖用户")
                {
                    erdengjiang += 1;
                    main.arr.Remove(yidengjiang5.Text);
                  
                    
                    go = false;
                    main2.zhong2.Text = yidengjiang1.Text + "  " + yidengjiang2.Text + "  " +yidengjiang3.Text + "  " +yidengjiang4.Text + "  " +yidengjiang5.Text;
                    MsgBoxForm msg1 = new MsgBoxForm("二等奖中奖用户为" + yidengjiang1.Text + "  " + yidengjiang2.Text + "  " + yidengjiang3.Text + "  " + yidengjiang4.Text + "  " + yidengjiang5.Text, "二等奖中奖用户", MessageBoxButtons.OK, MessageBoxIcon.None);
                    msg1.ShowDialog();
                    if (msg1.DialogResult == DialogResult.OK)
                    {
                        this.Close();
                        main2.qqComboBox1.SelectIndex = 2;
                    }
                }
            }
            else if (jiangxiang == 3)
            {
                if (qqButton1.Text == "开始")
                {
                    timer1.Enabled = true;
                    if (a == 0)
                    {
                        Random ran = new Random();
                        a = ran.Next(0, main.arr.Count - 1);
                    }
                    go = true;
                    qqButton1.Text = "抽取第一位三等奖用户";
                }
                else
                {
                    if (sandengjiang == 50)
                    {
                        
                        main.arr.Remove(label50.Text);
                        sandengjiang += 1;
                       
                        Thread.Sleep(500);
                        go = false;
                        string str = string.Empty;
                        string str1 = string.Empty;
                        int aa = 0;
                        foreach (Label lab in qqPanel3.Controls)
                        {
                            str += lab.Text+"  ";
                            aa += 1;
                            if (aa%5==0)
                            {
                                str1 += lab.Text + "\r\n\r\n";
                            }
                            else
                            {
                                str1 += lab.Text + "  ";
                            }
                        }
                        main2.zhong3.Text = str1;
                        MsgBoxForm msg1 = new MsgBoxForm("50名三等奖用户已经抽完", "三等奖中奖用户", MessageBoxButtons.OK, MessageBoxIcon.None);
                        msg1.ShowDialog();
                        if (msg1.DialogResult == DialogResult.OK)
                        {
                            this.Close();
                            main2.qqComboBox1.SelectIndex = 2;
                            StreamWriter sw = new StreamWriter("wlan_" + System.DateTime.Now.ToShortDateString() + "_抽奖结果.txt");
                            sw.WriteLine("一等奖用户:\r\n" + main2.zhong1.Text + "\r\n");
                            sw.WriteLine("二等奖用户:\r\n" + main2.zhong2.Text + "\r\n");
                            sw.WriteLine("三等奖用户:\r\n" + main2.zhong3.Text + "\r\n");
                            sw.WriteLine(System.DateTime.Now);
                            sw.Close();
                        }
                    }
                    else
                    {
                        //if (sandengjiang == 1)
                        //{
                        //    foreach (Label lab in qqPanel3.Controls)
                        //    {
                        //        if (lab.Name == "label" + (sandengjiang).ToString())
                        //        {
                        //            main.arr.Remove(lab.Text);
                        //            sandengjiang += 1;

                        //        }
                        //    }
                        //}
                        //else
                        //{
                            foreach (Label lab in qqPanel3.Controls)
                            {
                                if (lab.Name == "label" + (sandengjiang).ToString())
                                {
                                    
                                    main.arr.Remove(lab.Text);
                                    sandengjiang += 1;
                                    break;
                                }
                            }
                        }
                        qqButton1.Text = "抽取第" + ConvertInt(sandengjiang.ToString()) + "位三等奖用户";
                    //}
                    
                }
            }
        }
        private void start()
        {
            if (go)
            {
                for (int i = a; i < main.arr.Count; i++)
                {
                    a = i + 1;
                    yidengjiang.Text = main.arr[i].ToString();
                    if (i == main.arr.Count - 1)
                    {
                        a = 0;
                    }
                    break;
                }
            }

        }

        private void start1()
        {
            if (go)
            {
                for (int i = a; i < main.arr.Count; i++)
                {
                    a = i + 1;
                    if (erdengjiang == 1)
                    {
                        yidengjiang1.Text = main.arr[i].ToString();
                    }
                    if (erdengjiang == 2)
                    {
                        yidengjiang2.Text = main.arr[i].ToString();
                    }
                    if (erdengjiang == 3)
                    {
                        yidengjiang3.Text = main.arr[i].ToString();
                    }
                    if (erdengjiang == 4)
                    {
                        yidengjiang4.Text = main.arr[i].ToString();
                    }
                    if (erdengjiang == 5)
                    {
                        yidengjiang5.Text = main.arr[i].ToString();
                    }
                    if (i == main.arr.Count - 1)
                    {
                        a = 0;
                    }
                    break;
                }
            }

        }

        private void start2()
        {
            if (go)
            {
                for (int i = a; i < main.arr.Count; i++)
                {
                    a = i + 1;
                    foreach(Label lab in qqPanel3.Controls)
                    {
                        if (lab.Name == "label" + sandengjiang.ToString())
                        {
                            lab.Text = main.arr[i].ToString();
                            while(lab.Text == "")
                            {
                                lab.Text = main.arr[i].ToString();
                            }
                        }
                    }
                    if (i == main.arr.Count - 1)
                    {
                        a = 0;
                    }
                    break;
                }
            }

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (jiangxiang == 1)
            {
                start();
            }
            else if (jiangxiang == 2)
            {
                start1();
            }
            else if (jiangxiang == 3)
            {
                start2();
            }
        }

        private void jiang_Load(object sender, EventArgs e)
        {
            minge.Text = "一共有" + main.arr.Count + "个待抽奖用户";
        }
        #region 阿拉伯数字转汉文
        private static string[] cstr = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
        private static string[] wstr = { "零", "十", "二", "三", "四", "五", "六", "七", "八", "九" };
        /// <summary>
        /// 阿拉伯数字转汉文 
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string ConvertInt(string str)
        {
            int len = str.Length;
            int i;
            string tmpstr, rstr;
            rstr = "";
            if (len == 1)
            {
                tmpstr = str.Substring(0, 1);
                rstr += string.Concat(cstr[Int32.Parse(tmpstr)]);
            }
            else
            {
                for (i = 0; i < len; i++)
                {
                    tmpstr = str.Substring(i, 1);
                    rstr += string.Concat(wstr[Int32.Parse(tmpstr)]);
                }

            }
            return rstr;
        }
        #endregion

        private void qqPanel3_Paint(object sender, PaintEventArgs e)
        {

        }
    }
}

View Code
 1 /// 打开新窗体抽奖
2 void qqButton1_Click(object sender, EventArgs e)
3 {
4 if (zhong1.Text != "" && qqComboBox1.SelectIndex == 0)
5 {
6 MsgBoxForm msg1 = new MsgBoxForm("一等奖用户已经抽取请抽取其他奖项", "", MessageBoxButtons.OK, MessageBoxIcon.None);
7 msg1.ShowDialog();
8 }
9 else if (zhong2.Text != "" && qqComboBox1.SelectIndex == 1)
10 {
11 MsgBoxForm msg1 = new MsgBoxForm("二等奖用户已经抽取请抽取其他奖项", "", MessageBoxButtons.OK, MessageBoxIcon.None);
12 msg1.ShowDialog();
13 }
14 else if (zhong3.Text != "" && qqComboBox1.SelectIndex == 2)
15 {
16 MsgBoxForm msg1 = new MsgBoxForm("二等奖用户已经抽取请抽取其他奖项", "", MessageBoxButtons.OK, MessageBoxIcon.None);
17 msg1.ShowDialog();
18 }
19 else
20 {
21 jiang jiang1 = new jiang(qqComboBox1.Texts, this);
22 jiang1.ShowDialog();
23 }
24 }
25 ///载入的时候新开一个线程读取抽奖列表
26 private void main_Load(object sender, EventArgs e)
27 {
28 new Thread(() =>
29 {
30 try
31 {
32 string[] filearr = File.ReadAllLines("jiang.txt", Encoding.UTF8);
33 for (int j = 0; j < filearr.Length; j++)
34 {
35 Invoke(new Action(() =>
36 {
37 arr.Add(filearr[j].ToString());
38 }));
39 }
40 BeginInvoke(new Action(() =>
41 {
42
43 }));
44 }
45 catch (Exception ex)
46 {
47 string aa = ex.ToString();
48 }
49 }).Start();
50 }
51 ///保存中奖名单
52 SaveFileDialog saveFileDialog = new SaveFileDialog();
53 private void qqButton2_Click(object sender, EventArgs e)
54 {
55 if (zhong1.Text != "" && zhong2.Text != "" && zhong3.Text != "")
56 {
57 //saveFileDialog.InitialDirectory = "C:\\";//设置保存的默认目录
58 saveFileDialog.Filter = "txt files(*.txt)|*.txt|all files(*.*)|*.*";
59 saveFileDialog.FileName = "wlan_"+System.DateTime.Now.ToShortDateString()+"_抽奖结果";
60 saveFileDialog.FilterIndex = 1;//默认显示保存内型为TXT
61 saveFileDialog.RestoreDirectory = true;
62 if (saveFileDialog.ShowDialog() == DialogResult.OK)
63 {
64 try
65 {
66 StreamWriter sw = new StreamWriter(saveFileDialog.FileName);
67 sw.WriteLine("一等奖用户:\r\n" + zhong1.Text + "\r\n");
68 sw.WriteLine("二等奖用户:\r\n" + zhong2.Text + "\r\n");
69 sw.WriteLine("三等奖用户:\r\n" + zhong3.Text + "\r\n");
70 sw.WriteLine(System.DateTime.Now);
71 sw.Close();
72 }
73 catch (Exception ex)
74 {
75 Console.WriteLine("Err: " + ex.Message);
76 }
77 finally
78 {
79 Console.WriteLine("Write END");
80 }
81 }
82 }
83 else
84 {
85 MsgBoxForm msg1 = new MsgBoxForm("请抽奖后再导出结果", "", MessageBoxButtons.OK, MessageBoxIcon.None);
86 msg1.ShowDialog();
87
88 }
89 }

完整代码

main.cs

  1 using System;
2 using System.Collections;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 using System.Threading;
10 using System.IO;
11 using Skins.Common;
12
13 namespace lucy
14 {
15 public partial class main : Skins.Common.MainForm
16 {
17 public static ArrayList arr = new ArrayList();
18 public main()
19 {
20 InitializeComponent();
21 this.qqButton1.Click += new EventHandler(qqButton1_Click);
22 }
23
24 void qqButton1_Click(object sender, EventArgs e)
25 {
26 if (zhong1.Text != "" && qqComboBox1.SelectIndex == 0)
27 {
28 MsgBoxForm msg1 = new MsgBoxForm("一等奖用户已经抽取请抽取其他奖项", "", MessageBoxButtons.OK, MessageBoxIcon.None);
29 msg1.ShowDialog();
30 }
31 else if (zhong2.Text != "" && qqComboBox1.SelectIndex == 1)
32 {
33 MsgBoxForm msg1 = new MsgBoxForm("二等奖用户已经抽取请抽取其他奖项", "", MessageBoxButtons.OK, MessageBoxIcon.None);
34 msg1.ShowDialog();
35 }
36 else if (zhong3.Text != "" && qqComboBox1.SelectIndex == 2)
37 {
38 MsgBoxForm msg1 = new MsgBoxForm("二等奖用户已经抽取请抽取其他奖项", "", MessageBoxButtons.OK, MessageBoxIcon.None);
39 msg1.ShowDialog();
40 }
41 else
42 {
43 jiang jiang1 = new jiang(qqComboBox1.Texts, this);
44 jiang1.ShowDialog();
45 }
46 }
47
48 private void main_Load(object sender, EventArgs e)
49 {
50 new Thread(() =>
51 {
52 try
53 {
54 string[] filearr = File.ReadAllLines("jiang.txt", Encoding.UTF8);
55 for (int j = 0; j < filearr.Length; j++)
56 {
57 Invoke(new Action(() =>
58 {
59 arr.Add(filearr[j].ToString());
60 }));
61 }
62 BeginInvoke(new Action(() =>
63 {
64
65 }));
66 }
67 catch (Exception ex)
68 {
69 string aa = ex.ToString();
70 }
71 }).Start();
72 }
73 SaveFileDialog saveFileDialog = new SaveFileDialog();
74 private void qqButton2_Click(object sender, EventArgs e)
75 {
76 if (zhong1.Text != "" && zhong2.Text != "" && zhong3.Text != "")
77 {
78 //saveFileDialog.InitialDirectory = "C:\\";//设置保存的默认目录
79 saveFileDialog.Filter = "txt files(*.txt)|*.txt|all files(*.*)|*.*";
80 saveFileDialog.FileName = "wlan_"+System.DateTime.Now.ToShortDateString()+"_抽奖结果";
81 saveFileDialog.FilterIndex = 1;//默认显示保存内型为TXT
82 saveFileDialog.RestoreDirectory = true;
83 if (saveFileDialog.ShowDialog() == DialogResult.OK)
84 {
85 try
86 {
87 StreamWriter sw = new StreamWriter(saveFileDialog.FileName);
88 sw.WriteLine("一等奖用户:\r\n" + zhong1.Text + "\r\n");
89 sw.WriteLine("二等奖用户:\r\n" + zhong2.Text + "\r\n");
90 sw.WriteLine("三等奖用户:\r\n" + zhong3.Text + "\r\n");
91 sw.WriteLine(System.DateTime.Now);
92 sw.Close();
93 }
94 catch (Exception ex)
95 {
96 Console.WriteLine("Err: " + ex.Message);
97 }
98 finally
99 {
100 Console.WriteLine("Write END");
101 }
102 }
103 }
104 else
105 {
106 MsgBoxForm msg1 = new MsgBoxForm("请抽奖后再导出结果", "", MessageBoxButtons.OK, MessageBoxIcon.None);
107 msg1.ShowDialog();
108
109 }
110 }
111
112 private void button1_Click(object sender, EventArgs e)
113 {
114 if (zhong1.Text != "" && zhong2.Text != "" && zhong3.Text != "")
115 {
116 //saveFileDialog.InitialDirectory = "C:\\";//设置保存的默认目录
117 saveFileDialog.Filter = "txt files(*.txt)|*.txt|all files(*.*)|*.*";
118 saveFileDialog.FileName = "wlan_" + System.DateTime.Now.ToShortDateString() + "_抽奖结果判断重复";
119 saveFileDialog.FilterIndex = 1;//默认显示保存内型为TXT
120 saveFileDialog.RestoreDirectory = true;
121 if (saveFileDialog.ShowDialog() == DialogResult.OK)
122 {
123 try
124 {
125 StreamWriter sw = new StreamWriter(saveFileDialog.FileName);
126 sw.WriteLine(zhong1.Text);
127 sw.WriteLine(zhong2.Text.Replace(" ","\r\n"));
128 sw.WriteLine(zhong3.Text.Replace("\r\n", " ").Replace(" ", "\r\n").Replace(" ", "\r\n"));
129 sw.Close();
130 }
131 catch (Exception ex)
132 {
133 Console.WriteLine("Err: " + ex.Message);
134 }
135 finally
136 {
137 Console.WriteLine("Write END");
138 }
139 }
140 }
141 else
142 {
143 MsgBoxForm msg1 = new MsgBoxForm("请抽奖后再导出结果", "", MessageBoxButtons.OK, MessageBoxIcon.None);
144 msg1.ShowDialog();
145
146 }
147 }
148 }
149 }

jiang.cs

给移动做的一个抽奖程序,可能还有点漏洞,占时没有解决,抽奖的时候没有遇到什么问题。

现在把代码放出,没有带大的难度。

posted @ 2011-07-26 12:50  学坏  阅读(1195)  评论(2编辑  收藏  举报