C#制作浮動圖標窗體


先看效果:

  這個小圖標可以進行隨意拖拽,點擊還可以產生事件

隨便演示一下,效果就是這樣的。

下面直接演示如何制作:

新建一個窗體,設置窗體的FormBorderStyleNone(去掉窗體邊框);

調整窗體的大小,和你的圖標差不多大小就行,至於動態圖,還在測試中,圖標必須是沒有背景的,因為有背景的圖片展示出來,即時窗體透明,也會顯示圖片的白色背景,會很丑,所以要選沒有背景的圖片,可以網上找到之后自己拿ps把背景去掉,記住這里是圖片背景,不是窗體背景!

窗體背景一般默認BackColorControl,可以不用改,

去屬性中將TransparencyKey改為Control,也就是和窗體背景顏色一致的背景色就行了,這樣整個窗體就透明了,在窗體的BackGroundImage中設置你找的無背景圖片,要是太大,就把BackGroundImageLayouyt設置為Zoom

ShowInTaskBar改為False(不會產生任務欄圖標);

一定要設置TopMostTrue(始終置頂);

設置好上面的就開始敲代碼了

具體代碼如下

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Runtime.InteropServices;
 8 using System.Text;
 9 using System.Threading.Tasks;
10 using System.Windows.Forms;
11 
12 namespace UI
13 {
14     public partial class Test01 : Form
15     {
16         public Test01()
17         {
18             InitializeComponent();
19         }
20         //設置按鼠標移動窗體,調用外部接口
21         [DllImport("user32.dll")]
22         public static extern bool ReleaseCapture();
23         [DllImport("user32.dll")]
24         public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
25         private void Test01_MouseDown(object sender, MouseEventArgs e)
26         {
27             if (e.Button == MouseButtons.Left)
28             {
29                 Form form = sender as Form;
30                 Point point = form.Location;
31                 ReleaseCapture(); //釋放鼠標捕捉
32                 SendMessage(Handle, 0xA1, 0x02, 0);
33                 if (form.Location == point)
34                 {
35                     MessageBox.Show("哈哈");
36                 }
37 
38             }
39         }
40     }
41 }
View Code

 

可能前面有點啰嗦,希望大家不要責怪,因為我是怕新手拿到代碼不知道怎么用,因為我也是從新手過來的,我也是個新手,深有同感。

希望能仔細看一下本課題中是如何處理在mousedown中式如何處理判斷是點擊還是拖動的,因為這個可能在以后會用到,這個問題我本人在網上查了好久都沒有找到解決辦法,然后自己想通過判斷位置是否改變來實現的。

轉載請注明出處,謝謝,我不太會排版,抱歉。這是原創的第一篇博客,請大家見諒!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM