1.1 Notification控件
Notification控件是.NET Compact Framework 2.0提供的新控件之一。Notification实现用于显示和响应用户通知的功能。如图4-13所示,使用Notification控件询问用户是否开始下载。
图4-13:Notification控件
表4-2列出了Notification控件的主要属性。
表4-2:Notification的主要属性
属性 |
说明 |
Caption |
获取或设置指定消息气球的标题文本的字符串。 |
Critical |
获取或设置一个值,指示通知是否非常重要。 |
Icon |
获取或设置标题栏上的消息气球的当前图标。 |
InitialDuration |
获取或设置消息气球首次显示之后保持可见的秒数。 |
Text |
获取或设置消息气球的文本。 |
Visible |
获取或设置一个值,用以指示消息气球是否可见。 |
创建通知后,可设置Visible属性控制是否显示通知。InitialDuration属性设置消息气球最初显示的时间。如果将InitialDuration设置为零,并将Visible设置为 true,则消息气球不会显示,但是标题栏中会有它的图标,单击可以重新激活它。通知除了能够显示纯文本之外,还可以在消息气球中创建HTML内容的用户通知。清单4-3演示创建并显示如图4-13所示的HTML内容的通知。
清单 4-3 创建并显示HTML内容的通知
……
Dim HTMLString As New Text.StringBuilder
Dim sPath As String
sPath = System.IO.Path.GetDirectoryName(_
Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString())
HTMLString.Append("<html><body>")
HTMLString.Append("<font color=""#0000FF"">Data ready to download</font>")
HTMLString.Append(" <a href=""settings"">Settings</a>")
HTMLString.Append("<br><form method=""GET"" action=notify>")
HTMLString.Append("<SELECT NAME=""lstbx"">")
HTMLString.Append("_
<OPTION VALUE=""0"">Start now</OPTION><OPTION VALUE=""1"">In 1 hr</OPTION>")
HTMLString.Append("_
<OPTION VALUE=""2"">In 2 hrs</OPTION><OPTION VALUE=""3"">In 3 hrs</OPTION>")
HTMLString.Append("<OPTION VALUE=""4"">In 4 hrs</OPTION></SELECT>")
HTMLString.Append("<input type=checkbox name=chkbx>Notify completion")
HTMLString.Append("<br><input type='submit'>")
HTMLString.Append("<input type=button name='cmd:2' value='Cancel'>")
HTMLString.Append("</body></html>")
' 设置Text属性
Notification1.Text = HTMLString.ToString()
Dim IconStream As New IO.FileStream(sPath + "/info.ico", _
IO.FileMode.Open, IO.FileAccess.Read)
Notification1.Icon = New Drawing.Icon(IconStream, 16, 16)
Notification1.Caption = "Notification Demo"
Notification1.Critical = False
' 设置气球显示时间
Notification1.InitialDuration = 10
Notification1.Visible = True
……
表4-3列出了Notification控件的主要事件。
表4-3:Notification的主要事件
事件 |
说明 |
BalloonChanged |
在显示或隐藏消息气球时发生。 |
ResponseSubmitted |
在用户单击消息气球中的按钮或链接时发生。 |
每当显示或隐藏气球时,无论是使用Visible属性以编程方式进行此操作,还是通过用户交互方式进行此操作,都会触发BalloonChanged事件。通过编写处理ResponseSubmitted事件的代码,可以处理对通知的响应。清单4-4演示处理对通知的响应。
清单 4-4 处理对通知的响应
Private Sub Notification1_ResponseSubmitted(ByVal sender As System.Object, _
ByVal e As Microsoft.WindowsCE.Forms.ResponseSubmittedEventArgs) _
Handles Notification1.ResponseSubmitted
If e.Response.Substring(0, 6) = "notify" Then
Notification1.Visible = False
System.Windows.Forms.MessageBox.Show("提交成功")
End If
End Sub