場景 效果 註: 博客主頁: https://blog.csdn.net/badao_liumang_qizhi 關註公眾號 霸道的程式猿 獲取編程相關電子書、教程推送與免費下載。 實現 新建form窗體,窗體中設計佈局如下,一個Panel中拖拽四個label,然後添加兩個Button,再添加一個T ...
場景
效果
註:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關註公眾號
霸道的程式猿
獲取編程相關電子書、教程推送與免費下載。
實現
新建form窗體,窗體中設計佈局如下,一個Panel中拖拽四個label,然後添加兩個Button,再添加一個Timer控制項。
在窗體的Load事件中將Label進行隱藏
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; }
在預覽按鈕的點擊事件中,對預覽進行初始化。
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();//啟動計時器 }
會首先執行設置窗體中各控制項的樣式的方法
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();//恢復預覽狀態 }
在屏保按鈕的點擊事件中,就是將窗體的邊框去掉,然後將窗體最大化。
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/12028250