csdn俱乐部的活动中准备了抽奖的小环节为了娱乐一下,写了一个小程序;
从txt文件中导入信息列表,并添加到listbox 控件中
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "文本文件(*.txt)|*.txt";
int i = 0;
if (ofd.ShowDialog() == DialogResult.OK)
{
FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs);
string recorde;
while (sr.Peek() != -1)//循环写入
{
recorde = sr.ReadLine();
if (recorde.Length > 0)
{
if (i < 10)
{
this.listBoxCollection.Items.Add("0" + i + "|" + recorde);
}
else
{
this.listBoxCollection.Items.Add(i + "|" + recorde);
}
}
i++;
}
}
private int[] GetRandom(int number) //得到不重复的数组
{
int[] sArray = new int[number];
Random ra = new Random();
for (int i = 0; i < number; i++)
{
int m=ra.Next(0,this.listBoxCollection.Items.Count);
this.listBoxCollection.SelectedIndex = m;
Thread.Sleep(1200);
int mNum=0;
foreach (Control lb in this.panelResult.Controls)
{
if (lb.GetType().ToString().Trim() == "System.Windows.Forms.Button")
{
if (Convert.ToInt32(lb.Tag) == m)
{
mNum++;
}
}
}
for (int x = 0; x < i; x++)
{
if (sArray[x] == m)
{
mNum++;
}
}
if (mNum > 0)
{
i--;
}
else
{
sArray[i] = m;
}
}
return sArray;
}
动态加入相就的按钮控件
int[] sArray = GetRandom(Convert.ToInt32(textBoxSum.Text));
Button[] lb = new Button[sArray.Length];
for (int n = 0; n < lb.Length; n++) //根据选取随机数得到相应的值
{
lb[n] = new Button();
panelResult.Controls.Add(lb[n]);
if (colornum % 2 == 0)
{
lb[n].BackColor = Color.Brown;
}
else
{
lb[n].BackColor = Color.Black;
}
lb[n].ForeColor = Color.White;
lb[n].Text = GetLine(sArray[n]);
lb[n].Tag = sArray[n].ToString();
//lb[n].Font = new Font("宋体", 10F, System.Drawing.FontStyle.Regular);
lb[n].BringToFront();
lb[n].AutoSize = true;
lb[n].TextAlign = ContentAlignment.MiddleLeft;
lb[n].Left = 20;
lb[n].Top = (n + cursor) * 30;
}
由于有及时响应所以查询时间长了一些