这个东西其实是最简单的东西了,一个随机数一个集合一个timer控件就搞定了。本来不想写这一期的,后来有个哥们跟我说他在网上买了个抽奖系统花了几百块钱。。。。软件发过来我一反编译。。。当时我就愣了。。。一个猥琐的非人类就这样坑了一个好骗的人类。。。
步入正题,逆天今天给大家带来的是点名抽奖系列的小系统,为了普遍性和简易性就没有写死直接用一个txt记录(其实写死的程序也可以改变他的一些内容,在本章节的最后会给大家一个小工具【C32Asm】)
软件下载(.NET 4.0 框架)http://pan.baidu.com/s/1sjK2rG5【源码看下面】(没有过多美化)
(这个是我以前在IBM为了抽作业而编的(变态版),你们反编译一下,我没加壳)
http://pan.baidu.com/s/1dDenq6X
一、设计图纸:
二、代码分析: 1、读文本并把元素写到集合中: 文本是小文件,就直接用File来读了,具体看解释:
先定义个范型集合:Dictionary<int, string> dic = new Dictionary<int, string>();
if (File.Exists("dnt.txt"))//判断文件是否存在
{
try
{
string[] dnt = File.ReadAllLines("dnt.txt", Encoding.Default);//以默认编码格式来存数据(解决中文乱码)
int i = 0;
foreach (string item in dnt)//全部写到List<T>中
{
if (!string.IsNullOrEmpty(item.Trim()))//非空才可以写进去,并且一行中不全为空格
{
dic.Add(i++, item.Trim());//把头和尾的空格去除掉
}
}
}
catch
{
MessageBox.Show("亲,你先把我关闭再打开一次,这样我就又可以快乐生活了~");
}
}
else
{
File.Create("dnt.txt");
MessageBox.Show("如果你想自定义内容,请在当前目录下的dnt.txt逐行放入数据\n软件每次打开的时候都会重新读取文本的内容!", "逆天友情提醒");
}
2、随机显示文本里面的内容:
if (dic.Count > 0)//先看一下集合里面是不是空的(默认为空【和数组不同】)
{
Random r = new Random();
int n = r.Next(0, dic.Count);
lbl1.Text = dic[n];
lbl1.Left = (433 - lbl1.Width) / 2; //控制它居中对齐(我这边写死了,你改一下)【窗体宽度-lbl宽度的一半】
}
是不是没什么好讲的?几百块???!!!年度在公司里面一般都有个什么抽奖环节的,非IT的你如果弄个这个,是不是很吊?。。。。。我飘过~~~
三、源码分享:http://pan.baidu.com/s/1sjudRUt
四、视频共享: 等~~~
本期推荐: C32Asm(很不错的小工具) 下一期:手动打造繁简互转器