Per Mausklick bewerten und Feedback geben
MSDN
MSDN Library
.NET Entwicklung
.NET Framework 3.5
.NET Framework 3,5
Notification-Klasse
Alle reduzieren/Alle erweitern Alle reduzieren
Diese Seite ist spezifisch für
Microsoft Visual Studio 2008/.Net Framework 3.5

Andere Versionen stehen ebenfalls zur Verfügung für:
.NET Framework-Klassenbibliothek
Notification-Klasse

Aktualisiert: November 2007

Implementiert Windows CE-Funktionen zum Anzeigen von und Antworten auf Benutzerbenachrichtigungen.

Namespace:  Microsoft.WindowsCE.Forms
Assembly:  Microsoft.WindowsCE.Forms (in Microsoft.WindowsCE.Forms.dll)
Visual Basic (Deklaration)
Public Class Notification _
    Inherits Component
Visual Basic (Verwendung)
Dim instance As Notification
C#
public class Notification : Component
VisualC++
public ref class Notification : public Component
Jscript
public class Notification extends Component

Diese Klasse stellt eine verwaltete Implementierung der Windows CE-Benachrichtigungsfunktionen bereit. Sie wird nur auf dem Pocket PC unterstützt.

Sie können Benachrichtigungen erstellen und dann nach Bedarf mit der Visible-Eigenschaft anzeigen. Die InitialDuration-Eigenschaft legt die Dauer der ersten Einblendung der Sprechblase fest. Wenn Sie InitialDuration auf 0 (null) und Visible auf true festlegen, wird die Sprechblase nicht angezeigt. Stattdessen steht auf der Titelleiste das entsprechende Symbol zur Verfügung, und wenn Sie darauf klicken, wird die Benachrichtigung reaktiviert. Das BalloonChanged-Ereignis tritt auf, wenn die Sprechblase entweder programmgesteuert mit der Visible-Eigenschaft oder durch Benutzerinteraktion angezeigt oder ausgeblendet wird.

Sie können Benutzerbenachrichtigungen nicht nur im Nur-Text-Format, sondern auch mit HTML-Inhalten in der Sprechblase erstellen. Die HTML-Inhalte werden durch das HTML-Steuerelement des Pocket PCs dargestellt. Sie können auf Werte in einem HTML-Formular reagieren, indem Sie eine Antwortzeichenfolge analysieren, die von der ResponseSubmittedEventArgs-Klasse über die Response-Eigenschaft bereitgestellt wird.

Cmd:2-Bezeichner

Der "cmd:2"-Bezeichner erfüllt in Windows CE einen besonderen Zweck und wird zum Ausblenden von Benachrichtigungen verwendet. Wenn cmd:2 der Name einer HTML-Schaltfläche oder eines anderen Steuerelements in einer Sprechblase ist, wird das ResponseSubmitted-Ereignis nicht ausgelöst. Die Benachrichtigung wird nicht angezeigt, und stattdessen wird das entsprechende Symbol auf der Titelleiste eingeblendet, sodass Sie zu einem späteren Zeitpunkt darauf reagieren können.

7ctk0s42.alert_note(de-de,VS.90).gifHinweis:

Wenn eine Verknüpfung oder ein Element den Namen "cmd:n" besitzt, wobei n eine beliebige Ganzzahl ist, wird das ResponseSubmitted-Ereignis nicht ausgelöst. Es wird allerdings empfohlen, nur cmd:2 als Bezeichner zum Ausblenden von Benachrichtigungen zu verwenden.

Im folgenden Codebeispiel wird veranschaulicht, wie eine Benachrichtigung angezeigt wird und wie mithilfe von HTML-Elementen in einer Sprechblase Benutzereingaben erfasst werden. In diesem Beispiel wird zum Anzeigen der Benachrichtigung eine Schaltfläche verwendet. Normalerweise werden Benachrichtigungen infolge eines Ereignisses oder Prozesses wie eines Zeitgebers eingeblendet.

Das Szenario für dieses Beispiel ist eine Benachrichtigung zur Bestätigung des Downloads von Daten auf das Gerät. Die Sprechblase verfügt über die folgenden Elemente:

  • SELECT-Liste

  • Hyperlink

  • Kontrollkästchen

  • Schaltfläche zum Senden

  • Schaltfläche mit cmd:2-Bezeichner

Visual Basic
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports Microsoft.WindowsCE.Forms
Imports System.Reflection
Imports System.Text
Imports System.IO




Public Class Form1
   Inherits System.Windows.Forms.Form
   Private WithEvents Button1 As System.Windows.Forms.Button
   Private StatusBar1 As System.Windows.Forms.StatusBar

   Private WithEvents Notification1 As Microsoft.WindowsCE.Forms.Notification


   Public Sub New()

      InitializeComponent()

      ConfigNotification()

      StatusBar1.Text = ""

      ' Display the OK button for closing the application.
      Me.MinimizeBox = False
   End Sub



   Protected Overrides Sub Dispose(disposing As Boolean)
      MyBase.Dispose(disposing)
   End Sub


   Private Sub InitializeComponent()
      Me.Button1 = New System.Windows.Forms.Button()
      Me.StatusBar1 = New System.Windows.Forms.StatusBar()
      Me.SuspendLayout()
      '
      ' Button1
      '
      Me.Button1.Location = New System.Drawing.Point(6, 134)
      Me.Button1.Name = "Button1"
      Me.Button1.TabIndex = 20
      Me.Button1.Text = "Notify"
      '
      ' StatusBar1
      '
      Me.StatusBar1.Location = New System.Drawing.Point(0, 246)
      Me.StatusBar1.Name = "StatusBar1"
      Me.StatusBar1.Size = New System.Drawing.Size(240, 22)
      Me.StatusBar1.Text = ""
      '
      ' Form1
      '
      Me.ClientSize = New System.Drawing.Size(240, 268)
      Me.Controls.Add(StatusBar1)
      Me.Controls.Add(Button1)
      Me.Name = "Form1"
      Me.Text = "Notify Demo"
      Me.ResumeLayout(False)
   End Sub


   Shared Sub Main()
      Application.Run(New Form1())
   End Sub


   Private Sub ConfigNotification()

      ' Create a Notification.
      Notification1 = New Microsoft.WindowsCE.Forms.Notification()

      Try
          'Provide an icon for the notification to appear in the title bar when dismissed.
          'Assumes an icon file is compiled with the assembly as an embedded resource.
          Dim asm As [Assembly] = [Assembly].GetExecutingAssembly()
         Notification1.Icon = New Icon(asm.GetManifestResourceStream("notify.ico"), 16, 16)

         Notification1.Caption = "Notification scenario - data download"

         ' If notification is urgent, set to true.
         Notification1.Critical = False


         ' Create the text for the notification.
         ' Use a StringBuilder for better performance.
         Dim HTMLString As New StringBuilder()

         HTMLString.Append("<html><body>")
         HTMLString.Append("<font color=""#0000FF""><b>Data ready to download</b></font>")
         HTMLString.Append("&nbsp;&nbsp;&nbsp;&nbsp;<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='Postpone'>")
         HTMLString.Append("</body></html>")

         ' Set the Text property to the HTML string.
         Notification1.Text = HTMLString.ToString()

      Catch ex As Exception
         MessageBox.Show(ex.Message)
      End Try
   End Sub




   ' Clicking the button creates a notification
   ' that initally displays for 20 seconds.
   Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
      Notification1.InitialDuration = 20
      Notification1.Visible = True
      StatusBar1.Text = ""
   End Sub


   ' You can use the BalloonChanged event
   ' created by tracking each time the notification is made visible.
   Private Sub OnBalloonChanged(obj As Object, _
     balevent As BalloonChangedEventArgs) Handles Notification1.BalloonChanged
      If balevent.Visible = True Then
       ' You can add code here to add 
       ' functionality such as user interface 
       ' changes that should occur when
       ' the notification is displayed.
      End If
   End Sub

   ' When a ResponseSubmitted event occurs, this event handler
   ' parses the response to determine values in the HTML form.
   Private Sub OnResponseSubmitted(obj As Object, _ 
      resevent As ResponseSubmittedEventArgs) Handles Notification1.ResponseSubmitted

      ' Use a StringBuilder to create a log of the response.
      Dim LogResponse As New StringBuilder()


      ' If the response contains the name specified for the action value
      ' of the HTML form, in this case "notify," get the value of the
      ' selected option from the SELECT list. An example of the
      ' response string would be notify?lstbx=0.
      If resevent.Response.Substring(0, 6) = "notify" Then
         Dim choice As Integer = Convert.ToInt32(resevent.Response.Substring(13, 1))
         Select Case choice
            Case 0
               LogResponse.Equals("submit")
            Case 1
               LogResponse.Equals("opt 1")
            Case 2
               LogResponse.Equals("opt 2")
            Case 3
               LogResponse.Equals("opt 3")
            Case 4
               LogResponse.Equals("opt 4")
         End Select
         ' If the checkbox in the form is checked, the response
         ' string could be as follows: notify?lstbx=0chkbx=on
         ' You can determine whether the check box is selected
         ' by checking whether the response ends with "on".
         If resevent.Response.EndsWith("on") Then
            LogResponse.Equals("checkbox")
         End If

      ' If the user clicked the settings link,
      ' log the response. This example could display
      ' a dialog box by activating another form.
      ElseIf resevent.Response = "settings" Then
         ' Display a settings dialog by activating
         ' a form named 'Settings':
         ' Settings.Activate
         LogResponse.Equals("Postponed by clicking link")

         ' The user needs to respond to the notification
         ' after checking the settings, so set the
         ' InitialDuration and Visible properties so
         ' that the icon appears in the title bar.
         Notification1.InitialDuration = 0
         Notification1.Visible = True
      End If

      ' Display the response on the status bar.
      StatusBar1.Text = LogResponse.ToString() + " HTML: " + resevent.Response.ToString()
   End Sub
End Class
C#
using System;
using System.Windows.Forms;
using System.Drawing;
using Microsoft.WindowsCE.Forms;
using System.Reflection;
using System.Text;
using System.IO;

namespace notificationtest
{

    public class Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.StatusBar statusBar1;

        private Microsoft.WindowsCE.Forms.Notification notification1;

        public Form1()
        {

            InitializeComponent();

            ConfigNotification();

            statusBar1.Text = "";

            // Display the OK button for closing the application.
            this.MinimizeBox = false;


        }

        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
        }

        private void InitializeComponent()
        {
            this.button1 = new System.Windows.Forms.Button();
            this.statusBar1 = new System.Windows.Forms.StatusBar();
            this.SuspendLayout();
//
// button1
//
            this.button1.Location = new System.Drawing.Point(6, 134);
            this.button1.Name = "button1";
            this.button1.TabIndex = 20;
            this.button1.Text = "Notify";
            this.button1.Click += new System.EventHandler(this.button1_Click);
//
// statusBar1
//
            this.statusBar1.Location = new System.Drawing.Point(0, 246);
            this.statusBar1.Name = "statusBar1";
            this.statusBar1.Size = new System.Drawing.Size(240, 22);
            this.statusBar1.Text = "";
//
// Form1
//
            this.ClientSize = new System.Drawing.Size(240, 268);
            this.Controls.Add(this.statusBar1);
            this.Controls.Add(this.button1);
            this.Name = "Form1";
            this.Text = "Notify Demo";
            this.ResumeLayout(false);

        }

        static void Main()
        {
            Application.Run(new Form1());
        }

    private void ConfigNotification()
    {
            // Create a Notification.
            notification1 = new Microsoft.WindowsCE.Forms.Notification();

            try
            {
                    // Provide an icon for the notification to appear in the title bar when dismissed.
                    // Assumes an icon file is compiled with the assembly as an embedded resource.
                   Assembly asm = Assembly.GetExecutingAssembly();
                   notification1.Icon = new Icon(asm.GetManifestResourceStream("notify.ico"),16,16);

                    notification1.Caption = "Notification scenario - data download";

                    // If notification is urgent, set to true.
                    notification1.Critical = false;

                    // Create the text for the notification.
                    // Use a StringBuilder for better performance.
                    StringBuilder HTMLString = new StringBuilder();

                    HTMLString.Append("<html><body>");
                    HTMLString.Append("<font color=\"#0000FF\"><b>Data ready to download</b></font>");
                    HTMLString.Append("&nbsp;&nbsp;&nbsp;&nbsp;<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='Postpone'>");
                    HTMLString.Append("</body></html>");

                    // Set the Text property to the HTML string.
                    notification1.Text = HTMLString.ToString();

                    // Add event handlers.

                    notification1.BalloonChanged += new BalloonChangedEventHandler(OnBalloonChanged);
                    notification1.ResponseSubmitted += new ResponseSubmittedEventHandler(OnResponseSubmitted);

            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


        }


        // Clicking the button creates a notification
        // that initally displays for 20 seconds.
        // A button is used here for demonstration purposes only;
        // normally, a notification is sent in response to another event.  
        private void button1_Click(object sender, System.EventArgs e)
        {
            notification1.InitialDuration = 20;
            notification1.Visible = true;
            statusBar1.Text = "";
        }

        // You can use the BalloonChanged event
        // created by tracking each time the notification is made visible.
        private void OnBalloonChanged(object obj, BalloonChangedEventArgs balevent)
        {
            if (balevent.Visible == true)
            {
                // You can add code here to add 
                // functionality such as user interface 
                // changes that should occur when
                // the notification is displayed.
            }

        }

        // When a ResponseSubmitted event occurs, this event handler
        // parses the response to determine values in the HTML form.
        private void OnResponseSubmitted(object obj, ResponseSubmittedEventArgs resevent)
        {

            // Use a StringBuilder to create a log of the response.
            StringBuilder LogResponse = new StringBuilder();


            // If the response contains the name specified for the action value
            // of the HTML form, in this case "notify," get the value of the
            // selected option from the SELECT list. An example of the
            // response string would be notify?lstbx=0.

            if (resevent.Response.Substring(0, 6) == "notify")
            {
                int choice = Convert.ToInt32(resevent.Response.Substring(13, 1));
                switch (choice)
                {
                    case 0:
                        LogResponse.Equals("submit");
                        break;
                    case 1:
                        LogResponse.Equals("opt 1");
                        break;
                    case 2:
                        LogResponse.Equals("opt 2");
                        break;
                    case 3:
                        LogResponse.Equals("opt 3");
                        break;
                    case 4:
                        LogResponse.Equals("opt 4");
                        break;
                }
                // If the checkbox in the form is checked, the response
                // string could be as follows: notify?lstbx=0chkbx=on
                // You can determine whether the check box is selected
                // by checking whether the response ends with "on".
                if (resevent.Response.EndsWith("on"))
                    LogResponse.Equals("checkbox");
            }

            // If the user clicked the settings link,
            // log the response. This example could display
            // a dialog box by activating another form.
            else if (resevent.Response == "settings")
            {
                // Display a settings dialog by activating
                // a form named 'Settings':
                // Settings.Activate
                LogResponse.Equals("Postponed by clicking link");

                // The user needs to respond to the notification
                // after checking the settings, so set the
                // InitialDuration and Visible properties so
                // that the icon appears in the title bar.
                notification1.InitialDuration = 0;
                notification1.Visible = true;
            }

            // Display the response on the status bar.
            statusBar1.Text = LogResponse.ToString() + " HTML: " + resevent.Response.ToString();
        }
    }
}
System..::.Object
  System..::.MarshalByRefObject
    System.ComponentModel..::.Component
      Microsoft.WindowsCE.Forms..::.Notification
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Mobile für Pocket PC

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Compact Framework

Unterstützt in: 3.5, 2.0
Communityinhalt   Was ist Community Content?
Neuen Inhalt hinzufügen RSS  Anmerkungen
Processing
© 2009 Microsoft Corporation. Alle Rechte vorbehalten. Nutzungsbedingungen | Markenzeichen | Informationen zur Datensicherheit
Page view tracker