为了不让大家再误会,我在这里声明,我做的是在登录后的提示,只要大家用过QQ,Q会员开通过就知道 的,
先看一下效果吧

说一下实现 吧,

第一步是先把QQ会员 便当 的框给截图下来,然后放到Ps里P一下,需要做到这样就行了,看图片

第二步,可以在上面加一 些Lable就行了,关闭按钮是两个图片,切换的方法是这样的

private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
    pictureBox1.BackgroundImage = ClientSystem.Properties.Resources.lgintop;
}
//图片进入事件
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
    pictureBox1.BackgroundImage = ClientSystem.Properties.Resources.lgintop1;
}

第三步,IP的取法我就不说了有很多,还有上面的4.0的测试这些都 是加上的新闻,只要启动浏览器就行了,
启动的方法是

//系统官网
        private void label7_Click(object sender, EventArgs e)
        {
            Process.Start("http//www.cckan.net/");
        }[/code]
第四步,说一下渐变显示 的效果的处理方法
[mw_shl_code=csharp,true]代码
//界面加载
        private void Messages_Load(object sender, EventArgs e)
        {
            try
            {
                //让窗体加载时显示到右下角
                int x = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Width - 255;
                int y = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Height - 161;
                this.SetDesktopLocation(x, y);
                //加载显示信息
                ShowComptureInfo();
                //渐变显示这里表示加载
                caozuo = "load";
                this.Opacity = 0;
            }
            catch (Exception)
            {
            }
        }

caozuo有两个值一个是  load 表示要向不透明方向增加量,也就是说会慢慢看清楚,还有一个close 表示要向透明方向增加量,这样会慢慢的看不到窗体,我是用一个Timer来处理的

//定时处理渐变的效果
        private void timer2_Tick(object sender, EventArgs e)
        {
            if (caozuo == "load")
            {
                this.Opacity += 0.09;
            }
            else if (caozuo == "close")
            {
                this.Opacity = this.Opacity - 0.09;
                if (this.Opacity == 0)
                    this.Close();
            }
        }

这样只要caozuo的值发生变化的时候 就会向某个方向开始增加渐变显示 的量
当鼠标进入的时候我是这样处理的

//进入窗体事件
        private void Messages_MouseEnter(object sender, EventArgs e)
        {
            //停止定时关闭
            timer1.Enabled = false;
            //开始渐变加载
            caozuo = "load";
        }

这样的话就会在原来的基础上加量,也就是说如果快不显示了,当 鼠标 移动进入窗体时就双会慢慢的显示,当移开的时候我是这样处理的

//窗体离开事件
        private void Messages_MouseLeave(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }
  //定时关闭窗体
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer2.Enabled = true;
            caozuo = "close";//关闭窗体
        }

这样就双会启动定时关闭窗体,我的定时是6秒大家可以随便改的效果就是这样实现的
因为我的窗体 是没有标题栏的这样就不能拖动了, 很不方便,拖动窗体的方法有很多,我是这样实现 的,

private bool isMouseDown = false;
        private Point FormLocation;     //form的location
        private Point mouseOffset;      //鼠标的按下位置
        //鼠标安下
        private void Messages_MouseDown(object sender, MouseEventArgs e)
        {
            try
            {
                if (e.Button == MouseButtons.Left)
                {
                    isMouseDown = true;
                    FormLocation = this.Location;
                    mouseOffset = Control.MousePosition;
                }
            }
            catch (Exception)
            {
            }
        }
        //鼠标移动
        private void Messages_MouseMove(object sender, MouseEventArgs e)
        {
            try
            {
                int _x = 0;
                int _y = 0;
                if (isMouseDown)
                {
                    Point pt = Control.MousePosition;
                    _x = mouseOffset.X - pt.X;
                    _y = mouseOffset.Y - pt.Y;
                    this.Location = new Point(FormLocation.X - _x, FormLocation.Y - _y);
                }
            }
            catch (Exception)
            {
            }
        }
        //鼠标松开
        private void Messages_MouseUp(object sender, MouseEventArgs e)
        {
            try
            {
                isMouseDown = false;
            }
            catch (Exception)
            {
            }
        }

关于这个内容 可以参考 我的文章
拖动无标题窗体的方法
http://www.cckan.net/forum.php?mod=viewthread&tid=68

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 ClientSystem.ClientSystemServices;
using BaseFunction;
using System.Diagnostics;
namespace ClientSystem
{
    /// <summary>
    /// 提示窗体  苏飞
    /// </summary>
    public partial class Messages : Form
    {
        public Messages()
        {
            InitializeComponent();
        }
        //营业厅完整信息
        public OfficeInfo OfficeInfo { get; set; }
        #region //私有变量和方法
        private ClientSystemServices.Service1SoapClient user = new Service1SoapClient();
        //显示登录用户的计算机信息
        public void ShowComptureInfo()
        {
            //CUP
            //label9.Text = ComputerInfo.GetCpuID();
            //硬盘
            //label26.Text = ComputerInfo.GetDiskID();
            //IP
            lblIP.Text = ComputerInfo.GetIPAddress();
            //上次登录IP
            lbloldIP.Text = ComputerInfo.GetIPAddress();
            //用户名
            lblUser.Text = OfficeInfo.ofLogin + " 商户欢迎您";
            //计算机名称
            //label21.Text = ComputerInfo.GetComputerName();
            //操作系统
            //label23.Text = ComputerInfo.GetSystemType();
            //当前用户
            //label25.Text = ComputerInfo.GetUserName();
        }
        #endregion
        //界面加载
        private void Messages_Load(object sender, EventArgs e)
        {
            try
            {
                //让窗体加载时显示到右下角
                int x = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Width - 255;
                int y = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Height - 161;
                this.SetDesktopLocation(x, y);
                //加载显示信息
                ShowComptureInfo();
                //渐变显示这里表示加载
                caozuo = "load";
                this.Opacity = 0;
            }
            catch (Exception)
            {
            }
        }
        //关闭按钮
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        //图片离开事件
        private void pictureBox1_MouseLeave(object sender, EventArgs e)
        {
            pictureBox1.BackgroundImage = ClientSystem.Properties.Resources.lgintop;
        }
        //图片进入事件
        private void pictureBox1_MouseEnter(object sender, EventArgs e)
        {
            pictureBox1.BackgroundImage = ClientSystem.Properties.Resources.lgintop1;
        }
        //修改密码
        private void label6_Click(object sender, EventArgs e)
        {
            ChangePwd frm = new ChangePwd();
            frm.OfficeInfo = this.OfficeInfo;
            frm.Show();
        }
        //系统官网
        private void label7_Click(object sender, EventArgs e)
        {
            Process.Start("http://www.smxzc.com/");
        }
        #region//拖动无标题窗体
        private bool isMouseDown = false;
        private Point FormLocation;     //form的location
        private Point mouseOffset;      //鼠标的按下位置
        //鼠标安下
        private void Messages_MouseDown(object sender, MouseEventArgs e)
        {
            try
            {
                if (e.Button == MouseButtons.Left)
                {
                    isMouseDown = true;
                    FormLocation = this.Location;
                    mouseOffset = Control.MousePosition;
                }
            }
            catch (Exception)
            {
            }
        }
        //鼠标移动
        private void Messages_MouseMove(object sender, MouseEventArgs e)
        {
            try
            {
                int _x = 0;
                int _y = 0;
                if (isMouseDown)
                {
                    Point pt = Control.MousePosition;
                    _x = mouseOffset.X - pt.X;
                    _y = mouseOffset.Y - pt.Y;
                    this.Location = new Point(FormLocation.X - _x, FormLocation.Y - _y);
                }
            }
            catch (Exception)
            {
            }
        }
        //鼠标松开
        private void Messages_MouseUp(object sender, MouseEventArgs e)
        {
            try
            {
                isMouseDown = false;
            }
            catch (Exception)
            {
            }
        }
        #endregion
        //定时关闭窗体
        private void timer1_Tick(object sender, EventArgs e)
        {
            timer2.Enabled = true;
            caozuo = "close";//关闭窗体
        }
        //进入窗体事件
        private void Messages_MouseEnter(object sender, EventArgs e)
        {
            //停止定时关闭
            timer1.Enabled = false;
            //开始渐变加载
            caozuo = "load";
        }
        //窗体离开事件
        private void Messages_MouseLeave(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }
        string caozuo = "";
        //定时处理渐变的效果
        private void timer2_Tick(object sender, EventArgs e)
        {
            if (caozuo == "load")
            {
                this.Opacity += 0.09;
            }
            else if (caozuo == "close")
            {
                this.Opacity = this.Opacity - 0.09;
                if (this.Opacity == 0)
                    this.Close();
            }
        }
    }
}

仿QQ会员右下角提示框c#实现相关推荐

  1. 自定义Dialog提示框高仿QQ浏览器版本更新提示框

    前言: 今天是5月7号,真的好久没有写博客了,时光匆匆,我总感觉自己忙忙碌碌似的,静想片刻确实是挺忙的,但是在繁忙当中却缺少了总结归纳,相信大家都知道总结归纳的重要性了,今天我要和大家分享我的自定义D ...

  2. C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法...

    你QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法: 要么重写需要弹出的窗体的事件: protected override CreateParams ...

  3. 播放提示音+页面右下角提示框

    <script> window.onload = function() {suportNotify() } // 判断浏览器是否支持Web Notifications API functi ...

  4. C#仿QQ皮肤-实现原理系列文章导航

    请稳步我的博客查阅并下载所有资源以及源代码 http://www.cckan.net                                          写作说明 有不少朋友建议我写一下 ...

  5. C#仿QQ皮肤_写作说明

    写作说明 有不少朋友建议我写一下原理,其实我也很想写一下不过一直没有时间,正好今天有时间来个开题吧!!!  有句名言说的好,用心做事但不埋头,积跬步而至千里.性格决定命运,专注成就人生,细节决定成败. ...

  6. 【WPF】屏幕右下角消息提示框

    WPF做一个仿QQ的右下角消息提示窗,网上找到几个Demo后,选了一个比较好用的. 博客 http://blog.csdn.net/huangli321456/article/details/5052 ...

  7. HTML微博浮动代码,jQuery实现仿新浪微博浮动的消息提示框(可智能定位)

    本文实例讲述了jQuery实现仿新浪微博浮动的消息提示框.分享给大家供大家参考.具体如下: 这是一款jQuery实现的仿新浪微博新消息提示框效果,支持智能浮动定位框,新浪微博用来提示消息时候的智能定位 ...

  8. QQ会员抽奖系统引流源码_适合引流,营销,推广

    简介: 今天分享一款qq会员抽奖系统源码,客户抽中QQ会员,提示需要分享到6个群后才能领取, 分享群后直接跳到自己想让加的群,纯暴力引流,适合引流,营销,推广:本程序无需后台. 安装步骤: 1.准备好 ...

  9. QQ会员抽奖系统引流源码

    简介: 今天分享一款qq会员抽奖系统源码,客户抽中QQ会员,提示需要分享到6个群后才能领取, 分享群后直接跳到自己想让加的群,纯暴力,适合,营销,推广:本程序无需后台. 安装步骤: 1.准备好主机/服 ...

最新文章

  1. 用看板工具leangoo做人事招聘
  2. exp ORA-01455: converting column overflows integer datatype
  3. jms中activemq事务探讨
  4. Google工程师:如何看待程序员普遍缺乏数据结构和算法知识?
  5. 未处理sqlexception中value_plsql异常处理
  6. Class 创建性能大比拼(反射,泛型反射,泛型创建,缓存Emit,非缓存Emit)
  7. ASP.NET Core的配置(3): 将配置绑定为对象
  8. c语言 static的用法
  9. python中赋值语句_python中赋值语句和增强赋值语句的区别
  10. Android studio如何更改应用程序的图标以及名称
  11. 函数的重载、覆盖和隐藏
  12. 南通大学教务管理微信体验
  13. #C语言#重定义问题
  14. Spring Bean生命周期-prepareRefresh(二)
  15. vue中加载OCX控件(IE浏览器执行)
  16. Android编程入门很简单pdf
  17. Android记录18-集成极光推送的一点说明
  18. 冒泡排序(Java)
  19. 怎样才可以关掉Mac电脑开机启动项?
  20. 蓝桥杯——算法训练——P0704

热门文章

  1. winform使用DevExpress美化--基础
  2. 解析护照OCR识别/护照识别
  3. 支付宝直付通实现合单支付完整Demo
  4. S1.1 滤波、形态学腐蚀与卷积(合集)
  5. element-ui的tabs默认选中页签
  6. 格林威治时间转UTC
  7. UBB常用代码及其使用说明
  8. Linux中将多块新硬盘合并成一个,挂载到/mysqldata目录下
  9. 婚庆机器人舞狮子_婚庆舞狮表演
  10. android radiobutton底部导航,Android底部导航栏之RadioButton