网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VB.net > 正文
一个Office 2003风格的通知控件(VB.NET)
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
该控件有两个基本的类组成:

  一个 form (会实际显示出来的部分).
  一个包含所有可在form中包含的属性的类.

  类包含两个timers, 一个用来控制渐隐渐出的动画效果,另一个可配置为定义弹出窗口显示多久.下面是一个演示:

fPopup.Size = Size
fPopup.Opacity = 0
fPopup.Location = _
New Point(Screen.PrimaryScreen.WorkingArea.Right_
- fPopup.Size.Width - 1, _
Screen.PrimaryScreen.WorkingArea.Bottom)
fPopup.Show()

  form在Paint事件中完成绘制. 笔者使用了一下函数来获取比指定颜色更浅/更深的颜色,但不确定是否有更好的方法.

Private Function GetDarkerColor()Function GetDarkerColor(ByVal Color As Color) As Color
Dim clNew As Color
clNew = Drawing.Color.FromArgb(255, DedValueMin0(CInt(Color.R), _
Parent.GradientPower), DedValueMin0(CInt(Color.G), _
Parent.GradientPower), DedValueMin0(CInt(Color.B), _
Parent.GradientPower))
Return clNew
End Function
为避免闪烁:
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
Me.SetStyle(ControlStyles.ResizeRedraw, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)

  如何为控件实现一个隐藏窗体的方法
  在PopupNotifier.vb 类中加入:

Sub Hide()Sub Hide()
tmWait.Stop()
tmAnimation.Start()
End Sub

  在form中如此调用:

Private Sub PopupNotifier1_Close()Sub PopupNotifier1_Close() Handles PopupNotifier1.Close
PopupNotifier1.Hide()
End Sub

  如何为控件实现一个定渐隐渐出速度的属性

Private iAnimationDelay As Integer = 50
<Category("Behavior"), _
DefaultValue(50)> _
Property AnimationDelay()Property AnimationDelay() As Integer
Get
Return iAnimationDelay
End Get
Set(ByVal value As Integer)
iAnimationDelay = value
End Set
End Property
Sub Popup()Sub Popup()
tmAnimation.Interval = AnimationDelay
' . REST OF THE SUBROUTINE .
    End Sub

  如何实现类似MSN Messenger的同时处理多个提示消息的效果(向上层叠):
  写一个PopupNotifierCollection封装多个PopupNotifier,加一个YOrigin属性来控制位置

Imports System.ComponentModel
Public Class PopupNotifierCollectionClassClass PopupNotifierCollectionClass PopupNotifierCollection
Inherits CollectionBase
Sub New()Sub New()Sub New()Sub New()
End Sub
Protected Overrides Sub OnSet()Sub OnSet()Sub OnSet()Sub OnSet(ByVal index As Integer, ByVal oldValue As Object, ByVal newValue As Object)
MyBase.OnSet(index, oldValue, newValue)
End Sub
Protected Overrides Sub OnInsert()Sub OnInsert()Sub OnInsert()Sub OnInsert(ByVal index As Integer, ByVal value
  • 上一篇资讯: 全面剖析VB.NET(2)
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号