Winform中实现自定义屏保效果(附代码下载)
生活随笔
收集整理的這篇文章主要介紹了
Winform中实现自定义屏保效果(附代码下载)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
場(chǎng)景
效果
?
注:
博客主頁(yè):
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號(hào)
霸道的程序猿
獲取編程相關(guān)電子書(shū)、教程推送與免費(fèi)下載。
實(shí)現(xiàn)
新建form窗體,窗體中設(shè)計(jì)布局如下,一個(gè)Panel中拖拽四個(gè)label,然后添加兩個(gè)Button,再添加一個(gè)Timer控件。
?
在窗體的Load事件中將Label進(jìn)行隱藏
private void Form1_Load(object sender, EventArgs e){LabelVisible(false);//隱藏要移動(dòng)的文本} public void LabelVisible(bool n){label1.Visible = n;//隱藏或顯示該控件label2.Visible = n;label3.Visible = n;label4.Visible = n;}在預(yù)覽按鈕的點(diǎn)擊事件中,對(duì)預(yù)覽進(jìn)行初始化。
private void button1_Click(object sender, EventArgs e){preview();//對(duì)預(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();//啟動(dòng)計(jì)時(shí)器}會(huì)首先執(zhí)行設(shè)置窗體中各控件的樣式的方法
public void multimedia(Control panel){LabelVisible(true);//顯示要移動(dòng)的文本if (panel.Name == "form1")//如果父級(jí)窗體是當(dāng)前窗體{isbool = false;//隱藏fontSize = 20;//設(shè)置字體大小}else{isbool = true;//顯示fontSize = 10;//設(shè)置字體大小}label1.Text = "霸道的程序猿";//設(shè)置文本label1.Parent = panel;//設(shè)置父級(jí)控件label1.Font = new Font("宋體", fontSize, FontStyle.Bold);//設(shè)置字體樣式label2.Parent = panel;//設(shè)置父級(jí)控件label2.Text = "氓" + "\n" + "流" + "\n" + "道" + "\n" + "霸";//設(shè)置縱向文本label2.Font = new Font("宋體", fontSize, FontStyle.Bold);//設(shè)置字體樣式label3.Text = "猿序程的道霸";//設(shè)置文本label3.Parent = panel;//設(shè)置父級(jí)控件label3.Font = new Font("宋體", fontSize, FontStyle.Bold);//設(shè)置字體樣式label4.Text = "氓" + "\n" + "流" + "\n" + "道" + "\n" + "霸"; ;//設(shè)置縱向文本label4.Parent = panel;//設(shè)置父級(jí)控件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;//記錄父級(jí)控件}然后會(huì)啟動(dòng)計(jì)時(shí)器,在計(jì)時(shí)器執(zhí)行的具體方法中
private void timer1_Tick(object sender, EventArgs e){//文字從右到左滾動(dòng)label1.Left = label1.Left - 2;//向左移動(dòng)if ((label1.Left + label1.Width) < 1)//當(dāng)超出左邊界時(shí)label1.Left = FrmContainer.Width;//在右邊出現(xiàn)//文字從下到上滾動(dòng)label2.Top = label2.Top - 1;//向上移動(dòng)if ((label2.Top + label2.Height) < 1)//當(dāng)超出上邊界時(shí)label2.Top = FrmContainer.Height;//在下邊出現(xiàn)//文字從左到右滾動(dòng)if (label3.Left > FrmContainer.Width)//如果超出右邊界label3.Left = 0 - label2.Width;//在左邊出現(xiàn)elselabel3.Left = label3.Left + 2;//向右移動(dòng)//文字從上到下滾動(dòng)if (label4.Top > FrmContainer.Height)//如果超出下邊界label4.Top = 0 - label4.Height;//在上邊出現(xiàn)elselabel4.Top = label4.Top + 1;//向下移動(dòng)//如果在屏保情況下,鼠標(biāo)移動(dòng)if ((mouse.X != Control.MousePosition.X || mouse.Y != Control.MousePosition.Y) && panel1.Visible == false)preview();//恢復(fù)預(yù)覽狀態(tài)}在屏保按鈕的點(diǎn)擊事件中,就是將窗體的邊框去掉,然后將窗體最大化。
?private void button2_Click(object sender, EventArgs e){this.FormBorderStyle = FormBorderStyle.None;//窗體無(wú)邊框this.WindowState = FormWindowState.Maximized;//窗體最大化this.BackColor = Color.Black;//設(shè)置窗體背景為黑色multimedia(this);//設(shè)置窗體中各控件的樣式timer1.Start();//啟動(dòng)計(jì)時(shí)器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
總結(jié)
以上是生活随笔為你收集整理的Winform中实现自定义屏保效果(附代码下载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Winform中实现向窗体中拖放照片并显
- 下一篇: Winform中实现批量文件复制(附代码