社区
C#
帖子详情
用winform怎么实现QQ新闻弹窗的效果?
q731520336
2014-12-11 05:26:22
当程序处于后台自动弹出消息框!求大神解答
...全文
269
6
打赏
收藏
用winform怎么实现QQ新闻弹窗的效果?
当程序处于后台自动弹出消息框!求大神解答
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
threenewbee
2014-12-12
打赏
举报
回复
http://www.codeproject.com/Articles/3285/TaskbarNotifier-a-skinnable-MSN-Messenger-like-pop
royler
2014-12-12
打赏
举报
回复
用dev的alertcontrl 可实现你说的东西
以专业开发人员为伍
2014-12-11
打赏
举报
回复
引用 楼主 q731520336 的回复:
当程序处于后台自动弹出消息框!求大神解答
https://awk.so/#q=.net+Forms.NotifyIcon&newwindow=1&tbs=lr:lang_1zh-CN%7Clang_1zh-TW&lr=lang_zh-CN%7Clang_zh-TW
鏡椛氹鈅
2014-12-11
打赏
举报
回复
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace CommonApp { /// <summary> /// 枚举,描述消息窗口加载的形式 /// </summary> public enum LoadMode { /// <summary> /// 警告 /// </summary> Warning, /// <summary> /// 错误 /// </summary> Error, /// <summary> /// 提示 /// </summary> Prompt } /// <summary> /// 消息提示窗口 /// </summary> public partial class FormMessageBox : Form { /// <summary> /// 构造方法 /// </summary> public FormMessageBox() { InitializeComponent(); } #region ***********************字 段*********************** /// <summary> /// 窗体加载模式 /// </summary> private static LoadMode FormMode = LoadMode.Prompt; /// <summary> /// 显示的消息正文 /// </summary> private static string ShowMessage = null; /// <summary> /// 关闭窗口的定时器 /// </summary> private Timer Timer_Close = new Timer(); [DllImportAttribute("user32.dll")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); // 该函数可以实现窗体的动画效果 /// <summary> /// 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略 /// </summary> public const Int32 AW_HOR_POSITIVE = 0x00000001; /// <summary> /// 自右向左显示窗口。当使用了 AW_CENTER 标志时该标志被忽略 /// </summary> public const Int32 AW_HOR_NEGATIVE = 0x00000002; /// <summary> /// 自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略 /// </summary> public const Int32 AW_VER_POSITIVE = 0x00000004; // /// <summary> /// 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略 /// </summary> public const Int32 AW_VER_NEGATIVE = 0x00000008; // /// <summary> /// 若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展 /// </summary> public const Int32 AW_CENTER = 0x00000010; // /// <summary> /// 隐藏窗口,缺省则显示窗口 /// </summary> public const Int32 AW_HIDE = 0x00010000; // /// <summary> /// 激活窗口。在使用了AW_HIDE标志后不要使用这个标志 /// </summary> public const Int32 AW_ACTIVATE = 0x00020000; // /// <summary> /// 使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略 /// </summary> public const Int32 AW_SLIDE = 0x00040000; // /// <summary> /// 使用淡入效果。只有当hWnd为顶层窗口的时候才可以使用此标志 /// </summary> public const Int32 AW_BLEND = 0x00080000; // #endregion************************************************* #region ***********************方 法*********************** /// <summary> /// 构造方法 /// </summary> /// <param name="loadMode">加载模式</param> /// <param name="message">消息正文</param> public static void Show(LoadMode loadMode, string message) { FormMode = loadMode; ShowMessage = message; FormMessageBox box = new FormMessageBox(); box.Show(); } #endregion************************************************* #region ***********************事 件*********************** /// <summary> /// 窗体加载事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FormMessageBox_Load(object sender, EventArgs e) { this.lblTitle.Text = "提示"; if (FormMode == LoadMode.Error) { this.lblTitle.Text = "错误"; this.plShow.BackgroundImage = global::CommonApp.Properties.Resources.error; // 更换背景 } else if (FormMode == LoadMode.Warning) { this.lblTitle.Text = "警告"; this.plShow.BackgroundImage = global::CommonApp.Properties.Resources.warning; // 更换背景 } else { this.plShow.BackgroundImage = global::CommonApp.Properties.Resources.Prompt; // 更换背景 } this.lblMessage.Text = ShowMessage; int width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; int height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; int top = height - 35 - this.Height; int left = width - this.Width - 5; this.Top = top; this.Left = left; this.TopMost = true; AnimateWindow(this.Handle, 500, AW_SLIDE + AW_VER_NEGATIVE);//开始窗体动画 this.ShowInTaskbar = false; Timer_Close.Interval = 4000; Timer_Close.Tick += new EventHandler(Timer_Close_Tick); Timer_Close.Start(); } /// <summary> /// 关闭窗口的定时器响应事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Timer_Close_Tick(object sender, EventArgs e) { Timer_Close.Stop(); this.Close(); } /// <summary> /// 窗口已经关闭 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FormMessageBox_FormClosed(object sender, FormClosedEventArgs e) { AnimateWindow(this.Handle, 1000, AW_SLIDE + AW_VER_POSITIVE + AW_HIDE); Timer_Close.Stop(); Timer_Close.Dispose(); } /// <summary> /// 鼠标移动在消息框上 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void plShow_MouseMove(object sender, MouseEventArgs e) { this.Timer_Close.Stop(); } /// <summary> /// 鼠标移动离开消息框上 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void plShow_MouseLeave(object sender, EventArgs e) { this.Timer_Close.Start(); } #endregion************************************************* } }
郑州高新区WPF小王子
2014-12-11
打赏
举报
回复
需要计算 窗口的弹出位置,根据屏幕的宽高与窗体的宽高 计算。
bdmh
2014-12-11
打赏
举报
回复
new一个 form套一个webbrowser
C#
Winform
qq
弹窗
360
弹窗
C#
Winform
qq
弹窗
360
弹窗
精华志 C#
Winform
qq
弹窗
360
弹窗
精华志 C#
Winform
qq
弹窗
360
弹窗
京华志&精华志出品 分享资源
c#
winform
弹窗
能够
实现
弹窗
功能,类似于
qq
新闻
提示信息,可用于消息提醒
winform
右下角弹出消息框
项目需要,做了个用户消息提示功能,访
QQ
的文件传输,飞秋的消息提醒样式,可定时关闭,消息框弹出从下往上,关闭从上往下,有动画
效果
。当用户鼠标停放在提示框上时,自动关闭功能停止 ,当移走鼠标时,重新开始自动关闭功能 。
C#
winform
右下角弹出消息框
C#
WinForm
消息提示功能,类似
QQ
的消息提醒样式,可定时关闭,消息框弹出从下往上,关闭从上往下,有动画
效果
。当用户鼠标停放在提示框上时,自动关闭功能停止 ,当移走鼠标时,重新开始自动关闭功能 。有C#源码;里面有2个消息提醒的界面贡参考。
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章