小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Winform中實現(xiàn)自定義屏保效果(附代碼下載)

 頭號碼甲 2021-04-21

場景

效果

 

 

注:

博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費下載。

實現(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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多