利用C#輕鬆創建不規則窗體

1.準備一個不規則的位圖

可以使用任意一種你喜歡的作圖工具,製作一個有形狀的位圖,背景使用一種其他的顏色。這個顏色在編程中用得着,所以最好使用一種容易記憶的顏色。如黃色,文件名爲bk.bmp

2.創建窗體並設置屬性

1)將 FormBorderStyle 屬性設置爲 None。

2)將窗體的 BackgroundImage 屬性設置爲先前創建的位圖文件。不必將文件添加到項目系統中,這將在指定該文件作爲背景圖像時自動完成。

3)將 TransparencyKey 屬性設置爲位圖文件的背景色,如:黃色。(此屬性告訴應用程序窗體中的哪些部分需要設置爲透明。)

這時你就可以按F5測試你的程序,可以看到如圖所示的窗體。現在窗體還不能拖動,只能通過結束程序,或者alt+F4關閉。下面我們編寫相應的代碼來實現標題欄的相應功能。

 

3.編寫相關代碼(要實現窗口的關閉,移動等操作)
1)實現窗口關閉

從工具欄中拖進一個按鈕,設置其按鈕文字爲“×”,設置其大小爲合適大小。雙擊該按鈕進入其觸發事件函數。寫入如下代碼: this.Close(); //關閉本窗體

2)設置窗體的移動操作,我們要用到兩個全局的變量

private Point mouseOffset; //記錄鼠標指針的座標
private bool isMouseDown = false; //記錄鼠標按鍵是否按下

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){
    int xOffset;
    int yOffset;

    if (e.Button == MouseButtons.Left){
        xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
        yOffset = -e.Y - SystemInformation.CaptionHeight -
                  SystemInformation.FrameBorderSize.Height;
        mouseOffset = new Point(xOffset, yOffset);
        isMouseDown = true;
    }
}
private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e){
    if (isMouseDown){
        Point mousePos = Control.MousePosition;
        mousePos.Offset(mouseOffset.X, mouseOffset.Y);
        Location = mousePos;
    }
}
private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e){
    // 修改鼠標狀態isMouseDown的值,確保只有鼠標左鍵按下並移動時,才移動窗體
    if (e.Button == MouseButtons.Left){
        isMouseDown = false;
    }
}

3)加入相應的其他的控件

其他的就是看你自己的需要,來添加控件,實現自己想要實現的功能。本例中添加了一文本框,設置其背景爲黃色,所以顯示時也成了透明的。

現在,我們就可以生成程序,看一下最後的效果了。

發佈了16 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章