前段时间,实现能够随机抽取人员的程序啦~实测可用
界面代碼
<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.youkuaiyun.com/detail/why_n/9827058