場景效果
注: 博客主頁: 實現(xiàn)新建form窗體,窗體中設(shè)計布局如下,一個Panel中拖拽四個label,然后添加兩個Button,再添加一個Timer控件。
在窗體的Load事件中將Label進(jìn)行隱藏 private void Form1_Load(object sender, EventArgs e) { LabelVisible(false);//隱藏要移動的文本 }
public void LabelVisible(bool n) { label1.Visible = n;//隱藏或顯示該控件 label2.Visible = n; label3.Visible = n; label4.Visible = n; }
在預(yù)覽按鈕的點擊事件中,對預(yù)覽進(jìn)行初始化。 private void button1_Click(object sender, EventArgs e) { preview();//對預(yù)覽進(jìn)行初始化 }
public void preview() { this.FormBorderStyle = FormBorderStyle.Sizable;//使窗體有邊框 this.WindowState = FormWindowState.Normal;//使窗體恢復(fù)默認(rèn)大小 this.BackColor = Color.Gainsboro;//設(shè)設(shè)置窗體的背景顏色 panel1.Visible = true;//顯示該控件 multimedia(panel1);//設(shè)置窗體中各控件的樣式 timer1.Start();//啟動計時器 }
會首先執(zhí)行設(shè)置窗體中各控件的樣式的方法 public void multimedia(Control panel) { LabelVisible(true);//顯示要移動的文本 if (panel.Name == "form1")//如果父級窗體是當(dāng)前窗體 { isbool = false;//隱藏 fontSize = 20;//設(shè)置字體大小 } else { isbool = true;//顯示 fontSize = 10;//設(shè)置字體大小 } label1.Text = "霸道的程序猿";//設(shè)置文本 label1.Parent = panel;//設(shè)置父級控件 label1.Font = new Font("宋體", fontSize, FontStyle.Bold);//設(shè)置字體樣式 label2.Parent = panel;//設(shè)置父級控件 label2.Text = "氓" + "\n" + "流" + "\n" + "道" + "\n" + "霸";//設(shè)置縱向文本 label2.Font = new Font("宋體", fontSize, FontStyle.Bold);//設(shè)置字體樣式 label3.Text = "猿序程的道霸";//設(shè)置文本 label3.Parent = panel;//設(shè)置父級控件 label3.Font = new Font("宋體", fontSize, FontStyle.Bold);//設(shè)置字體樣式 label4.Text = "氓" + "\n" + "流" + "\n" + "道" + "\n" + "霸"; ;//設(shè)置縱向文本 label4.Parent = panel;//設(shè)置父級控件 label4.Font = new Font("宋體", fontSize, FontStyle.Bold);//設(shè)置字體樣式 panel.Visible = isbool;//隱藏或顯示 button1.Visible = isbool;//隱藏或顯示 button2.Visible = isbool;//隱藏或顯示 label1.Top = panel.Height / 4;//設(shè)置當(dāng)前控件的顯示位置 label3.Top = (panel.Height / 4) * 3;//設(shè)置當(dāng)前控件的顯示位置 label3.Left = 0 - label2.Width;//設(shè)置當(dāng)前控件的顯示位置 label4.Left = (panel.Width / 4) * 3;//設(shè)置當(dāng)前控件的顯示位置 label4.Top = 0 - label2.Height;//設(shè)置當(dāng)前控件的顯示位置 label2.Left = panel.Width / 4;//設(shè)置當(dāng)前控件的顯示位置 FrmContainer = panel;//記錄父級控件 }
然后會啟動計時器,在計時器執(zhí)行的具體方法中 private void timer1_Tick(object sender, EventArgs e) { //文字從右到左滾動 label1.Left = label1.Left - 2;//向左移動 if ((label1.Left + label1.Width) < 1)//當(dāng)超出左邊界時 label1.Left = FrmContainer.Width;//在右邊出現(xiàn) //文字從下到上滾動 label2.Top = label2.Top - 1;//向上移動 if ((label2.Top + label2.Height) < 1)//當(dāng)超出上邊界時 label2.Top = FrmContainer.Height;//在下邊出現(xiàn) //文字從左到右滾動 if (label3.Left > FrmContainer.Width)//如果超出右邊界 label3.Left = 0 - label2.Width;//在左邊出現(xiàn) else label3.Left = label3.Left + 2;//向右移動 //文字從上到下滾動 if (label4.Top > FrmContainer.Height)//如果超出下邊界 label4.Top = 0 - label4.Height;//在上邊出現(xiàn) else label4.Top = label4.Top + 1;//向下移動 //如果在屏保情況下,鼠標(biāo)移動 if ((mouse.X != Control.MousePosition.X || mouse.Y != Control.MousePosition.Y) && panel1.Visible == false) preview();//恢復(fù)預(yù)覽狀態(tài) }
在屏保按鈕的點擊事件中,就是將窗體的邊框去掉,然后將窗體最大化。
private void button2_Click(object sender, EventArgs e) { this.FormBorderStyle = FormBorderStyle.None;//窗體無邊框 this.WindowState = FormWindowState.Maximized;//窗體最大化 this.BackColor = Color.Black;//設(shè)置窗體背景為黑色 multimedia(this);//設(shè)置窗體中各控件的樣式 timer1.Start();//啟動計時器 button1.Visible = false;//隱藏 button2.Visible = false;//隱藏 panel1.Visible = false;//隱藏 mouse = Control.MousePosition;//獲取鼠標(biāo)的屏幕坐標(biāo) }
代碼下載https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/12028250 |
|
|