C#制作浮动图标窗体
先看效果:


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

随便演示一下,效果就是这样的。
下面直接演示如何制作:
新建一个窗体,设置窗体的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#制作浮动图标窗体的更多相关文章
- 如何让网页在浏览器标题栏显示自己制作的图标ico
第一步,制作一个尺寸16x16大小的PNG图片,可以用photoshop等图片处理工具来设计,然后保存到本地电脑上,通过ico在线制作或使用IconWorkshop工具制作ICO图标,ico图标命名为 ...
- Wpf 简单制作自己的窗体样式
最近一直在搞wpf相关的东东,由于还在门外徘徊,所以第一篇blog写了简单的制作扁平化的wpf button样式,这一篇也简单的制作属于自己wpf 窗体的样式. 废话少说,下面就开始制作自己的窗体样式 ...
- 01.WPF中制作无边框窗体
[引用:]http://blog.csdn.net/johnsuna/article/details/1893319 众所周知,在WinForm中,如果要制作一个无边框窗体,可以将窗体的FormB ...
- 01.制作ico图标的工具
制作ico图标的工具在线转换地址: http://lvwenhan.com/convertico/ http://lvwenhan.com/convertico/Converticon.swf
- (027)[技术资料]业余制作Windows图标
这几天一直在纠结一件事,想给软件制作一个简单的图标,以前(2014-10-4 11:00)制作的是下面这个,多重ICO,最大尺寸256,无压缩(windows允许图标尺寸在大于256时按PNG方式进行 ...
- WPF中制作无边框窗体
原文:WPF中制作无边框窗体 众所周知,在WinForm中,如果要制作一个无边框窗体,可以将窗体的FormBorderStyle属性设置为None来完成.如果要制作成异形窗体,则需要使用图片或者使用G ...
- 用CSS制作带图标的按钮
先上一张效果图
- Wpf 简单制作自己的窗体样式(2)
上一篇blog讲了制作简单的样式的窗体,对于一个传统的窗体,不仅仅可以拖动,和关闭操作.还具有最大化.最小化.隐藏,以及改变窗体的大小等.这篇blog就是对上篇的补充,完善窗体的改变大小和最大化最小化 ...
- 使用css3新属性clip-path制作小图标
一般一个网页上面,或多或少都会用到一些小图标,展示这些小图标的方法有很多种.最简单的做法就是将UI图上面的每个小图标都保存为图片,一个小图标就一张图片.但这也是比较笨的方法,因为浏览器同一时间最多加载 ...
随机推荐
- 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 ...
- 数学概念 —— 奇异性(Singularity,Vertical tangent)
0. 基本定义 Singularity (mathematics) 数学上的奇异性一般是指,函数在该点未定义(not defined,比如取值为无穷),或者不可微(fails to be well-b ...
- C#步骤控件
C#开发step步骤条控件 现在很多的javascript控件,非常的不错,其中step就是一个,如下图所示: 那么如何用C#来实现一个step控件呢? 先定义一个StepEntity类来存储步骤 ...
- Smali相关的基础知识点
通过本篇博客的学习,相信你可以无压力的读懂Smali语言文件,并可以将Smali还原成java!!! 其实Smali语言并不是很难,如果你有一些汇编指令的基础,学习Smali就更加简单了,有兴趣的可以 ...
- Leetcode 268 Missing Number 位运算
题意:先将0, 1, 2, ..., n放入数组,然后去掉其中一个值,找到那个值. 这题与singe number 是一个类型,变形的地方就是首先需要将0, 1, 2, ..., n再次放入这个数组, ...
- 使用GDI+生成KnownColor列表
原文:使用GDI+生成KnownColor列表 在写这篇"GDI+与WPF中的颜色简析"之前,我试着使用GDI+生成KnownColor列表.现将关键代码贴出来吧. 最终效果图: ...
- Linux内核源代码情景分析-fork()
父进程fork子进程: child = fork() fork经过系统调用.来到了sys_fork.具体过程请參考Linux内核源码情景分析-系统调用. asmlinkage int sys_fork ...
- WPF动画旋转(3轴同时旋转问题)
原文:WPF动画旋转(3轴同时旋转问题) WPF的资料比较少,做起来不是很方便,之前一直有个XYZ3个轴同时旋转的问题,开始的时候以为通过 this.theRotateX.Axis = new Ve ...
- C++ Primer 学习笔记_104_特殊工具与技术 --嵌套类
特殊工具与技术 --嵌套类 能够在还有一个类内部(与后面所讲述的局部类不同,嵌套类是在类内部)定义一个类,这种类是嵌套类,也称为嵌套类型.嵌套类最经常使用于定义运行类. 嵌套类是独立的类,基本上与它们 ...
- 2019 renew 博客目录
.net && .net core Microsoft.AspNet.SignalR实现弹幕(即时通讯) C#调用JS httpclient POST请求(urlencoded) 二维 ...