C# 随机抽奖程式

         前段时间,实现能够随机抽取人员的程序啦~实测可用


界面代碼


<Window x:Class="RandomTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="468" Width="664">
    <Grid Height="444">
        <Grid Height="113" Margin="12,12,0,0" Name="grid1" VerticalAlignment="Top">

            <Label Content="抽取幸運兒,你要請幸運兒吃飯" Height="48" HorizontalAlignment="Left" Margin="7,23,0,0" Name="label1" VerticalAlignment="Top" Width="135" FontSize="24" />
            <Label Content="你請該幸運兒吃飯" Height="66" HorizontalAlignment="Left" Margin="142,6,0,0" Name="label2" VerticalAlignment="Top" Width="437" FontSize="48" Foreground="Red" />


        </Grid>
        <Label Height="152" HorizontalAlignment="Left" Margin="93,131,0,0" Name="labLuckEmpName" VerticalAlignment="Top" FontSize="100" Width="447" Foreground="#FF2828CE" />

        <Label FontSize="35" Foreground="#FF2828CE" Height="52" HorizontalAlignment="Left" Margin="333,187,0,0" Name="labLuckEmpNo" VerticalAlignment="Top" Width="198" Visibility="Hidden"  />
        <Button Content="開始" Height="92" HorizontalAlignment="Left" Margin="157,289,0,0" Name="butDraw" VerticalAlignment="Top" Width="301" FontSize="60" Click="butDraw_Click" Tag="0" />
    </Grid>
</Window>


代码部分


 #region 表單初始  
        System.Threading.TimerCallback tc;
        System.Threading.Timer objTimer;
        private string ps_DrawFlag = "0";
        private int pi_ToBeEmpCnt = 0;
        private int pi_Rnd = 0;
        DataTable po_DTabToBeEmpDetail = new DataTable("DTabToBeEmpDetail");

      
        private void FormInit()  // 設定值
        {      
            po_DTabToBeEmpDetail = new DataTable("DTabDrawList");
            po_DTabToBeEmpDetail.Columns.Add("EmpNo", typeof(string));
            po_DTabToBeEmpDetail.Columns.Add("EmpName", typeof(string));
            po_DTabToBeEmpDetail.Rows.Add("1", "AAA");
            po_DTabToBeEmpDetail.Rows.Add("2", "BBB");
            po_DTabToBeEmpDetail.Rows.Add("3", "CCC");
            po_DTabToBeEmpDetail.Rows.Add("4", "DDD");
            po_DTabToBeEmpDetail.Rows.Add("5", "EEE");
            po_DTabToBeEmpDetail.Rows.Add("6", "FFF");
            po_DTabToBeEmpDetail.Rows.Add("7", "GGG");
            po_DTabToBeEmpDetail.Rows.Add("8", "HHH");
            po_DTabToBeEmpDetail.Rows.Add("9", "III");
            po_DTabToBeEmpDetail.Rows.Add("10", "JJJ");
            po_DTabToBeEmpDetail.Rows.Add("11", "KKK");
            po_DTabToBeEmpDetail.Rows.Add("12", "LLL");
            
            pi_ToBeEmpCnt = po_DTabToBeEmpDetail.Rows.Count;           
        }
        #endregion


        public MainWindow()
        {
            InitializeComponent();
            tc = new System.Threading.TimerCallback(this.OnTimerCallback);
            objTimer = new System.Threading.Timer(tc);
            objTimer.Change(0, 10);  
            FormInit();
        }

        private void butDraw_Click(object sender, RoutedEventArgs e)
        {
            string ls_Tag = ((Button)sender).Tag.ToString().Trim();
            switch (ls_Tag)
            {
                case "0":   //開始

                    ((Button)sender).Tag = "1";
                    ((Button)sender).Content = "選號";
                    break;
                case "1":   //抽號
                    string ls_EmpNo = labLuckEmpNo.Content.ToString().Trim();
                    string ls_EmpName = labLuckEmpName.Content.ToString().Trim();

                    ((Button)sender).Tag = "0";
                    ((Button)sender).Content = "開始";
                    break;
            }
            ps_DrawFlag = ((Button)sender).Tag.ToString().Trim();
        }




        #region Method
        private void dgDetail_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            e.Row.Header = e.Row.GetIndex() + 1;
        }

        private void OnTimerCallback(Object obj)
        {
            this.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal,

            (System.Threading.ThreadStart)delegate()
            {
                //(定时处理) 
                if (ps_DrawFlag == "1")
                {
                    if (pi_Rnd >= pi_ToBeEmpCnt) pi_Rnd = 0;

                    string ls_EmpNo = po_DTabToBeEmpDetail.Rows[pi_Rnd]["EmpNo"].ToString();
                    labLuckEmpName.Content = po_DTabToBeEmpDetail.Rows[pi_Rnd]["EmpName"].ToString();
                    labLuckEmpNo.Content = po_DTabToBeEmpDetail.Rows[pi_Rnd]["EmpNo"].ToString();
                    pi_Rnd = pi_Rnd + 4;
                }
            });
        }
        #endregion
    }


以上代码只是实现随机抽取功能,简单实现,比较适合初学者啦~

代码下载地址:http://download.csdn.net/detail/why_n/9827058





    

猜你喜欢

转载自blog.csdn.net/Why_n/article/details/70800242