usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Drawing.Text;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceDanMu
{public partial classForm1 : Form
{
List TanMuList = new List();publicForm1()
{
InitializeComponent();
}private void Form1_Load(objectsender, EventArgs e)
{
System.Drawing.Rectangle rec= Screen.GetWorkingArea(this);this.Height = rec.Height / 3 * 2; //3分之2
this.Width =rec.Width;this.Location = new Point(0, 0);this.BackColor =Color.White;this.TransparencyKey =Color.White;this.Opacity = 1;
Thread th1= new Thread(newThreadStart(aaaa));
th1.Start();
AddTanMu("你开启了弹幕");
}//测试
private voidaaaa()
{while (true)
{
AddTanMu(Guid.NewGuid().ToString());
Thread.Sleep(new Random().Next(1000, 3000));
}
}private voidAddTanMu(String word)
{
Label label= newLabel();
label.Text=word;
label.AutoSize= true;
label.ForeColor=Color.Red;
label.BackColor=Color.Transparent;
label.Font= new Font("宋体", 20);
label.Location= new Point(this.Width, new Random().Next(this.Height -label.Height));
TanMuList.Add(label);this.Invoke(new Action(() =>{this.Controls.Add(label);
}));
}private void Timer_Tick(objectsender, EventArgs e)
{//只能使用for循环
for (int i = 0; i < TanMuList.Count; i++)
{
Label label=TanMuList[i];
Point point=label.Location;//步数、速度
for (int v = 0; v < 7; v++)
{
point.X= point.X - 1;
label.Location=point;
}//超出移除
if (point.X + label.Width < 0)
{
label.Visible= false;
TanMuList.Remove(label);this.Controls.Remove(label);
}
}
}
}
}