Winform中实现自定义屏保效果(附代码下载)
生活随笔
收集整理的這篇文章主要介紹了
Winform中实现自定义屏保效果(附代码下载)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
效果
?
注:
博客主頁:
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;//在左邊出現elselabel3.Left = label3.Left + 2;//向右移動//文字從上到下滾動if (label4.Top > FrmContainer.Height)//如果超出下邊界label4.Top = 0 - label4.Height;//在上邊出現elselabel4.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
總結
以上是生活随笔為你收集整理的Winform中实现自定义屏保效果(附代码下载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Winform中实现向窗体中拖放照片并显
- 下一篇: Winform中实现批量文件复制(附代码