先看效果:

  这个小图标可以进行随意拖拽,点击还可以产生事件

随便演示一下,效果就是这样的。

下面直接演示如何制作:

新建一个窗体,设置窗体的FormBorderStyle为None(去掉窗体边框);

调整窗体的大小,和你的图标差不多大小就行,至于动态图,还在测试中,图标必须是没有背景的,因为有背景的图片展示出来,即时窗体透明,也会显示图片的白色背景,会很丑,所以要选没有背景的图片,可以网上找到之后自己拿ps把背景去掉,记住这里是图片背景,不是窗体背景!

窗体背景一般默认BackColor为Control,可以不用改,

去属性中将TransparencyKey改为Control,也就是和窗体背景颜色一致的背景色就行了,这样整个窗体就透明了,在窗体的BackGroundImage中设置你找的无背景图片,要是太大,就把BackGroundImageLayouyt设置为Zoom

将ShowInTaskBar改为False(不会产生任务栏图标);

一定要设置TopMost为True(始终置顶);

设置好上面的就开始敲代码了

具体代码如下

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace UI
{
public partial class Test01 : Form
{
public Test01()
{
InitializeComponent();
}
//设置按鼠标移动窗体,调用外部接口
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
private void Test01_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Form form = sender as Form;
Point point = form.Location;
ReleaseCapture(); //释放鼠标捕捉
SendMessage(Handle, 0xA1, 0x02, );
if (form.Location == point)
{
MessageBox.Show("哈哈");
} }
}
}
}

可能前面有点啰嗦,希望大家不要责怪,因为我是怕新手拿到代码不知道怎么用,因为我也是从新手过来的,我也是个新手,深有同感。

希望能仔细看一下本课题中是如何处理在mousedown中式如何处理判断是点击还是拖动的,因为这个可能在以后会用到,这个问题我本人在网上查了好久都没有找到解决办法,然后自己想通过判断位置是否改变来实现的。

转载请注明出处,谢谢,我不太会排版,抱歉。这是原创的第一篇博客,请大家见谅!

C#制作浮动图标窗体的更多相关文章

  1. 如何让网页在浏览器标题栏显示自己制作的图标ico

    第一步,制作一个尺寸16x16大小的PNG图片,可以用photoshop等图片处理工具来设计,然后保存到本地电脑上,通过ico在线制作或使用IconWorkshop工具制作ICO图标,ico图标命名为 ...

  2. Wpf 简单制作自己的窗体样式

    最近一直在搞wpf相关的东东,由于还在门外徘徊,所以第一篇blog写了简单的制作扁平化的wpf button样式,这一篇也简单的制作属于自己wpf 窗体的样式. 废话少说,下面就开始制作自己的窗体样式 ...

  3. 01.WPF中制作无边框窗体

    [引用:]http://blog.csdn.net/johnsuna/article/details/1893319   众所周知,在WinForm中,如果要制作一个无边框窗体,可以将窗体的FormB ...

  4. 01.制作ico图标的工具

    制作ico图标的工具在线转换地址: http://lvwenhan.com/convertico/ http://lvwenhan.com/convertico/Converticon.swf

  5. (027)[技术资料]业余制作Windows图标

    这几天一直在纠结一件事,想给软件制作一个简单的图标,以前(2014-10-4 11:00)制作的是下面这个,多重ICO,最大尺寸256,无压缩(windows允许图标尺寸在大于256时按PNG方式进行 ...

  6. WPF中制作无边框窗体

    原文:WPF中制作无边框窗体 众所周知,在WinForm中,如果要制作一个无边框窗体,可以将窗体的FormBorderStyle属性设置为None来完成.如果要制作成异形窗体,则需要使用图片或者使用G ...

  7. 用CSS制作带图标的按钮

    先上一张效果图

  8. Wpf 简单制作自己的窗体样式(2)

    上一篇blog讲了制作简单的样式的窗体,对于一个传统的窗体,不仅仅可以拖动,和关闭操作.还具有最大化.最小化.隐藏,以及改变窗体的大小等.这篇blog就是对上篇的补充,完善窗体的改变大小和最大化最小化 ...

  9. 使用css3新属性clip-path制作小图标

    一般一个网页上面,或多或少都会用到一些小图标,展示这些小图标的方法有很多种.最简单的做法就是将UI图上面的每个小图标都保存为图片,一个小图标就一张图片.但这也是比较笨的方法,因为浏览器同一时间最多加载 ...

随机推荐

  1. Spring Boot with JSP and Tiles3

    Spring Boot with JSP and Tiles3 Using tiles and jsp on a Spring Boot 1.2.7 project file: pom.xml und ...

  2. 数学概念 —— 奇异性(Singularity,Vertical tangent)

    0. 基本定义 Singularity (mathematics) 数学上的奇异性一般是指,函数在该点未定义(not defined,比如取值为无穷),或者不可微(fails to be well-b ...

  3. C#步骤控件

    C#开发step步骤条控件   现在很多的javascript控件,非常的不错,其中step就是一个,如下图所示: 那么如何用C#来实现一个step控件呢? 先定义一个StepEntity类来存储步骤 ...

  4. Smali相关的基础知识点

    通过本篇博客的学习,相信你可以无压力的读懂Smali语言文件,并可以将Smali还原成java!!! 其实Smali语言并不是很难,如果你有一些汇编指令的基础,学习Smali就更加简单了,有兴趣的可以 ...

  5. Leetcode 268 Missing Number 位运算

    题意:先将0, 1, 2, ..., n放入数组,然后去掉其中一个值,找到那个值. 这题与singe number 是一个类型,变形的地方就是首先需要将0, 1, 2, ..., n再次放入这个数组, ...

  6. 使用GDI+生成KnownColor列表

    原文:使用GDI+生成KnownColor列表 在写这篇"GDI+与WPF中的颜色简析"之前,我试着使用GDI+生成KnownColor列表.现将关键代码贴出来吧. 最终效果图: ...

  7. Linux内核源代码情景分析-fork()

    父进程fork子进程: child = fork() fork经过系统调用.来到了sys_fork.具体过程请參考Linux内核源码情景分析-系统调用. asmlinkage int sys_fork ...

  8. WPF动画旋转(3轴同时旋转问题)

    原文:WPF动画旋转(3轴同时旋转问题) WPF的资料比较少,做起来不是很方便,之前一直有个XYZ3个轴同时旋转的问题,开始的时候以为通过  this.theRotateX.Axis = new Ve ...

  9. C++ Primer 学习笔记_104_特殊工具与技术 --嵌套类

    特殊工具与技术 --嵌套类 能够在还有一个类内部(与后面所讲述的局部类不同,嵌套类是在类内部)定义一个类,这种类是嵌套类,也称为嵌套类型.嵌套类最经常使用于定义运行类. 嵌套类是独立的类,基本上与它们 ...

  10. 2019 renew 博客目录

    .net && .net core Microsoft.AspNet.SignalR实现弹幕(即时通讯) C#调用JS httpclient POST请求(urlencoded) 二维 ...