注:編程
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公衆號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。 佈局
新建form窗體,窗體中設計佈局以下,一個Panel中拖拽四個label,而後添加兩個Button,再添加一個Timer控件。字體
在窗體的Load事件中將Label進行隱藏this
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; }
在預覽按鈕的點擊事件中,對預覽進行初始化。spa
private void button1_Click(object sender, EventArgs e) { preview();//對預覽進行初始化 }
public void preview() { this.FormBorderStyle = FormBorderStyle.Sizable;//使窗體有邊框 this.WindowState = FormWindowState.Normal;//使窗體恢復默認大小 this.BackColor = Color.Gainsboro;//設設置窗體的背景顏色 panel1.Visible = true;//顯示該控件 multimedia(panel1);//設置窗體中各控件的樣式 timer1.Start();//啓動計時器 }
會首先執行設置窗體中各控件的樣式的方法.net
public void multimedia(Control panel) { LabelVisible(true);//顯示要移動的文本 if (panel.Name == "form1")//若是父級窗體是當前窗體 { isbool = false;//隱藏 fontSize = 20;//設置字體大小 } else { isbool = true;//顯示 fontSize = 10;//設置字體大小 } label1.Text = "霸道的程序猿";//設置文本 label1.Parent = panel;//設置父級控件 label1.Font = new Font("宋體", fontSize, FontStyle.Bold);//設置字體樣式 label2.Parent = panel;//設置父級控件 label2.Text = "氓" + "\n" + "流" + "\n" + "道" + "\n" + "霸";//設置縱向文本 label2.Font = new Font("宋體", fontSize, FontStyle.Bold);//設置字體樣式 label3.Text = "猿序程的道霸";//設置文本 label3.Parent = panel;//設置父級控件 label3.Font = new Font("宋體", fontSize, FontStyle.Bold);//設置字體樣式 label4.Text = "氓" + "\n" + "流" + "\n" + "道" + "\n" + "霸"; ;//設置縱向文本 label4.Parent = panel;//設置父級控件 label4.Font = new Font("宋體", fontSize, FontStyle.Bold);//設置字體樣式 panel.Visible = isbool;//隱藏或顯示 button1.Visible = isbool;//隱藏或顯示 button2.Visible = isbool;//隱藏或顯示 label1.Top = panel.Height / 4;//設置當前控件的顯示位置 label3.Top = (panel.Height / 4) * 3;//設置當前控件的顯示位置 label3.Left = 0 - label2.Width;//設置當前控件的顯示位置 label4.Left = (panel.Width / 4) * 3;//設置當前控件的顯示位置 label4.Top = 0 - label2.Height;//設置當前控件的顯示位置 label2.Left = panel.Width / 4;//設置當前控件的顯示位置 FrmContainer = panel;//記錄父級控件 }
而後會啓動計時器,在計時器執行的具體方法中設計
private void timer1_Tick(object sender, EventArgs e) { //文字從右到左滾動 label1.Left = label1.Left - 2;//向左移動 if ((label1.Left + label1.Width) < 1)//當超出左邊界時 label1.Left = FrmContainer.Width;//在右邊出現 //文字從下到上滾動 label2.Top = label2.Top - 1;//向上移動 if ((label2.Top + label2.Height) < 1)//當超出上邊界時 label2.Top = FrmContainer.Height;//在下邊出現 //文字從左到右滾動 if (label3.Left > FrmContainer.Width)//若是超出右邊界 label3.Left = 0 - label2.Width;//在左邊出現 else label3.Left = label3.Left + 2;//向右移動 //文字從上到下滾動 if (label4.Top > FrmContainer.Height)//若是超出下邊界 label4.Top = 0 - label4.Height;//在上邊出現 else label4.Top = label4.Top + 1;//向下移動 //若是在屏保狀況下,鼠標移動 if ((mouse.X != Control.MousePosition.X || mouse.Y != Control.MousePosition.Y) && panel1.Visible == false) preview();//恢復預覽狀態 }
在屏保按鈕的點擊事件中,就是將窗體的邊框去掉,而後將窗體最大化。code
private void button2_Click(object sender, EventArgs e) { this.FormBorderStyle = FormBorderStyle.None;//窗體無邊框 this.WindowState = FormWindowState.Maximized;//窗體最大化 this.BackColor = Color.Black;//設置窗體背景爲黑色 multimedia(this);//設置窗體中各控件的樣式 timer1.Start();//啓動計時器 button1.Visible = false;//隱藏 button2.Visible = false;//隱藏 panel1.Visible = false;//隱藏 mouse = Control.MousePosition;//獲取鼠標的屏幕座標 }
https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/12028250orm