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图上面的每个小图标都保存为图片,一个小图标就一张图片.但这也是比较笨的方法,因为浏览器同一时间最多加载 ...
随机推荐
- C# .NET数据库操作
C# .NET更智能的数据库操作的封装完整版(重构) 前述: 第一次发表文章,不过是对数据库简单的封装,主要是阐述下思路.那么在上篇文章,在大家的指导下和提出意见,并自己对代码进行了思考.在这两天 ...
- 发布与订阅SQLServer
SQLServer 中发布与订阅 在对数据库做迁移的时候,会有很多方法,用存储过程,job,也可以用开源工具lettle,那么今天这些天变接触到了一种新的方法,就是SqlServer中自带的发布与订阅 ...
- .net命名空间和程序集详解
命名空间是一种用于将逻辑上相似的类按层次结构分组的机制.这种机制防止了命名冲突.在这种结构化采用被点号"."分隔的单词来实现.通常最顶层的命名空间是System,例如System; ...
- css 单选框 样式 填充自定义背景 after
input[type='radio'] //width 16px //height 16px display none //input[type='radio']:chcked // backgoun ...
- vue,js 使用中报错 TypeError: Cannot read property '__ob__' of undefined
原因: data中没有加return 切记!切记!
- JavaScript实现算法
leetcode算法题(JavaScript实现) 题外话 刷了一段时间的codewars的JavaScript题目之后,它给我最大的感受就是,会帮助你迅速的提升你希望练习的语言的API的熟悉程度 ...
- 如何控制WAP网站上输入框的默认键盘类型
百度上对这样的资料介绍很多,基本上都和这个页面是一个意思 http://www.w3school.com.cn/html5/att_input_type.asp : 语法 <input type ...
- WPF中的3D特性和常见的几个类
原文:WPF中的3D特性和常见的几个类 WPF 3D 常用的几个类及其关系 1. Visual 类 所有二维可视化元素的基类,为 WPF 中的呈现提供支持,其中包括命中测试.坐标转换和边界 ...
- Python 的神奇方法指南
简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling). 你可以把它当作一 ...
- Bootstrap Button 使用方法
Getting Started <!-- basic button --> <com.beardedhen.androidbootstrap.BootstrapButton andr ...