C# 从桌面右下角显示 Popup 窗口提醒
上图演示


private void display_Click(object sender, EventArgs e)
{
Frm_Info.Instance().ShowForm();//显示窗体
} private void close_Click(object sender, EventArgs e)
{
Frm_Info.Instance().CloseForm();//隐藏窗体
}
#region 显示窗体
public void ShowForm()
{
switch (this.FormNowState)
{
case FormState.Hide:
if (this.Height <= this.Rect.Height - 192)//当窗体没有完全显示时
this.SetBounds(Rect.X, this.Top - 192, Rect.Width, this.Height + 192);//使窗体不断上移
else
{
this.SetBounds(Rect.X,Rect.Y,Rect.Width,Rect.Height);//设置当前窗体的边界
}
AnimateWindow(this.Handle, 800, AW_SLIDE + AW_VER_NEGATIVE);//动态显示本窗体
break;
}
}
#endregion #region 关闭窗体
public void CloseForm()
{
AnimateWindow(this.Handle,800,AW_SLIDE + AW_VER_POSITIVE + AW_HIDE);//动画隐藏窗体
this.FormNowState = FormState.Hide;//设定当前窗体的状态为隐藏
}
#endregion
Popup 窗体
public partial class Frm_Info :System.Windows.Forms.Form
{
#region 声明的变量
private System.Drawing.Rectangle Rect;//定义一个存储矩形框的数组
private FormState InfoStyle = FormState.Hide;//定义变量为隐藏
static private Frm_Info dropDownForm = new Frm_Info();//实例化当前窗体
private static int AW_HIDE = 0x00010000; //该变量表示动画隐藏窗体
private static int AW_SLIDE = 0x00040000;//该变量表示出现滑行效果的窗体
private static int AW_VER_NEGATIVE = 0x00000008;//该变量表示从下向上开屏
private static int AW_VER_POSITIVE = 0x00000004;//该变量表示从上向下开屏
#endregion #region 该窗体的构造方法
public Frm_Info()
{
InitializeComponent();
//初始化工作区大小
System.Drawing.Rectangle rect = System.Windows.Forms.Screen.GetWorkingArea(this);//实例化一个当前窗口的对象
this.Rect = new System.Drawing.Rectangle(rect.Right - this.Width - 1,rect.Bottom - this.Height - 1,this.Width,this.Height);//为实例化的对象创建工作区域
}
#endregion #region 调用API函数显示窗体
[DllImportAttribute("user32.dll")]
private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
#endregion #region 鼠标控制图片的变化
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
pictureBox1.Image = imageList1.Images[1];//设定当鼠标进入PictureBox控件时PictureBox控件的图片
} private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
pictureBox1.Image = imageList1.Images[0]; //设定当鼠标离开PictureBox控件时PictureBox控件的图片
}
#endregion #region 定义标识窗体移动状态的枚举值
protected enum FormState
{ Hide=0,//隐藏窗体
Display=1,//显示窗体
Displaying=2,//显示窗体中
Hiding=3 //隐藏窗体中
}
#endregion #region 用属性标识当前状态
protected FormState FormNowState
{
get { return this.InfoStyle; } //返回窗体的当前状态
set { this.InfoStyle = value; } //设定窗体当前状态的值
}
#endregion #region 显示窗体
public void ShowForm()
{
switch (this.FormNowState)
{
case FormState.Hide:
if (this.Height <= this.Rect.Height - 192)//当窗体没有完全显示时
this.SetBounds(Rect.X, this.Top - 192, Rect.Width, this.Height + 192);//使窗体不断上移
else
{
this.SetBounds(Rect.X,Rect.Y,Rect.Width,Rect.Height);//设置当前窗体的边界
}
AnimateWindow(this.Handle, 800, AW_SLIDE + AW_VER_NEGATIVE);//动态显示本窗体
break;
}
}
#endregion #region 关闭窗体
public void CloseForm()
{
AnimateWindow(this.Handle,800,AW_SLIDE + AW_VER_POSITIVE + AW_HIDE);//动画隐藏窗体
this.FormNowState = FormState.Hide;//设定当前窗体的状态为隐藏
}
#endregion #region 返回当前窗体的实例化对象
static public Frm_Info Instance()
{
return dropDownForm; //返回当前窗体的实例化对象
}
#endregion
}
C# 从桌面右下角显示 Popup 窗口提醒的更多相关文章
- C# winform窗体在桌面右下角显示(任务栏上方)
问题描述: 有一个主窗口程序,需要给该程序添加一个通知子窗口.子窗口的位置为右下角. 解决方法: 在子窗口frmPopMsg的代码文件中添加如下代码: public frmPopMsg() { Ini ...
- linux如何隐藏和显示所有窗口?
centos7 基本上就跟fedora23是一样的了, 也许它们使用的内和是一样的, fedora23使用的是4.2.3, 所以使用fedora对使用centos和redhat是有优势和好处福利的. ...
- C#实现右下角弹出窗口效果
/// <summary> /// 窗体动画函数 注意:要引用System.Runtime.InteropServices; /// </summary> /// <pa ...
- C# winform 右下角弹出窗口结果
using System.Runtime.InteropServices; [DllImport("user32")] private static extern bool Ani ...
- Excel在任务栏中只显示一个窗口的解决办法
Excel在任务栏中只显示一个窗口的解决办法 以前朋友遇到过这个问题,这次自己又遇到了,习惯了以前的那种在任务栏中显示全部窗口,方便用Alt+Tab键进行切换. 如果同时打开许多Excel工作簿, ...
- Windows Server 2012 R2在桌面上显示计算机/网络图标
原文 Windows Server 2012 R2在桌面上显示计算机/网络图标 从Windows2012开始,微软取消了服务器桌面个性化选项,如何重新调出配置界面,可以使用微软命令调出.具体方法如下: ...
- c# 右下角弹出窗口
public partial class Form2 : Form { System.Diagnostics.Stopwatch sth = new System.Diagnostics.Stopwa ...
- c# Windows Service 桌面上显示UI
介绍 本文的目的是说明如何从Windows Vista中的服务正确启动交互式进程,以及演示如何以完全管理员权限启动该进程.交互式过程是能够在桌面上显示UI的过程. 本文介绍如何创建一个名为Loader ...
- C# winform实现右下角弹出窗口结果的方法
using System.Runtime.InteropServices; [DllImport("user32")] private static extern bool Ani ...
- mfc对话框启动就直接隐藏在右下角显示托盘图标
之前在网络上找了一份mfc对话框启动就直接隐藏窗体,在右下角显示托盘图标的demo 在win7下可以正常使用,但在win10上直接溢出,导致计算机跟注销似的崩溃现象. 后来找到原因是因为在OnInit ...
随机推荐
- 5个免费、跨平台的SQLite数据库可视化工具
前言 SQLite是一个轻量级的嵌入式关系型数据库,目前最新的版本是 SQLite3.今天推荐5个实用的SQLite数据库可视化工具(GUI),帮助大家更好的管理SQLite数据库. 什么是SQLit ...
- 性能测试常见面试题(Loadrunner)
https://blog.csdn.net/xiangxiupp/article/details/53862056
- 当创建一个ingress后,kubernetes会发什么?
本文分享自华为云社区<当创建一个ingress后,kubernetes会发什么?>,作者:可以交个朋友. 一.Ingress概述 Ingress是一组路由转发规则合集,将集群内部服务通过7 ...
- 一个简单的Python暴力破解网站登录密码脚本
目录: 关键代码解释 完整代码 方法一 运行结果 方法二 运行结果 测试靶机为DVWA,适合DVWA暴力破解模块的Low和Medium等级 关键代码解释 url指定url地址 url = " ...
- Spring IOC 解析
Bean 容器的创建 ApplicationContext 的类结构: 通过上图可以看到,具体的 ApplicationContext 有 AnnotationConfigApplicationCon ...
- 【scikit-learn基础】--『监督学习』之 决策树分类
决策树分类算法是一种监督学习算法,它的基本原理是将数据集通过一系列的问题进行拆分,这些问题被视为决策树的叶子节点和内部节点.决策树的每个分支代表一个可能的决策结果,而每个叶子节点代表一个最终的分类结果 ...
- Python中的@abstractmethod
@abstractmethod 是 Python 中 abc 模块(Abstract Base Classes)提供的一个装饰器,用于声明抽象方法.抽象方法是指在抽象类中声明但没有提供具体实现的方 ...
- Windows10安装WSL2和Ubuntu的过程
因为在Windows10环境中安装了2个相同的包导致冲突,所以想到了通过WSL2+Docker的方式进行编程开发.因为Docker Desktop直接安装就行了,不做介绍.本文主要介绍WSL2和U ...
- 【华为云技术分享】空间异常即刻诊断,华为云数据管理服务DAS又出新招
摘要:华为云数据管理服务DAS提供的云DBA智能化运维平台于日前发布了空间&元数据分析特性,支持查看实例空间异常列表.实例空间概况.数据库列表信息,帮助用户及时发现数据库中的空间和元数据异常, ...
- 最终,我决定将代码迁出x86架构!
如今,我们几乎所有软件都建立在 x86 架构之上 ,在互联网漫长的演进过程中,各大公司拼尽全力在迭代上层架构.优化整体性能,开发者们该用的.能用的招儿想必都用上了,接下来呢?如果底层架构不出现大的革新 ...