Procedura: inviare una notifica
Aggiornamento: novembre 2007
È possibile utilizzare una classe Notification ogni volta che si desidera l'intervento dell'utente in un'applicazione, ad esempio per richiedere l'invio dei dati. Una notifica viene in genere inviata quando si verifica un evento o viene soddisfatta una condizione, tuttavia, per semplicità, in questo esempio viene illustrata una notifica associata alla selezione di un pulsante. È possibile elaborare le risposte alle notifiche fornendo il codice per la gestione dell'evento ResponseSubmitted.
Il messaggio di una notifica può essere in formato testo normale o HTML. Il formato HTML consente di inviare un piccolo form HTML che contiene caselle di controllo, pulsanti, elenchi e altri elementi HTML. In questo esempio viene utilizzato un form semplice contenente i pulsanti Invia e Annulla.
Il pulsante Annulla è identificato da "cmd:2", che viene utilizzato in Windows CE per chiudere le notifiche. Se cmd:2 è il nome di un pulsante HTML o di un altro elemento nel fumetto di un messaggio, l'evento ResponseSubmitted non verrà generato. La notifica viene chiusa ma la relativa icona rimane disponibile sulla barra del titolo e la risposta può essere inviata in un secondo momento.
Per inviare una notifica
Creare un'applicazione Windows Pocket PC.
Aggiungere al form una classe Notification e una classe Button.
Creare un'istanza della classe Notification.
Me.Notification1 = New Microsoft.WindowsCE.Forms.Notification
this.notification1 = new Microsoft.WindowsCE.Forms.Notification();
Aggiungere il codice riportato di seguito per gestire l'evento Click del pulsante.
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Use a StringBuilder for better performance. Dim HTMLString As New StringBuilder HTMLString.Append("<html><body>") HTMLString.Append("Submit data?") HTMLString.Append("<form method=\'GET\' action=notify>") HTMLString.Append("<input type='submit'>") HTMLString.Append( _ "<input type=button name='cmd:2' value='Cancel'>") HTMLString.Append("</body></html>") ' Set the Text property to the HTML string. Notification1.Text = HTMLString.ToString() Dim IconStream As New FileStream(".\My Documents\notify.ico", _ FileMode.Open, FileAccess.Read) Notification1.Icon = new Icon(IconStream, 16, 16) Notification1.Caption="Notification Demo" Notification1.Critical = false ' Display icon up to 10 seconds. Notification1.InitialDuration = 10 Notification1.Visible = true End Sub
private void button1_Click(object sender, System.EventArgs e) { StringBuilder HTMLString = new StringBuilder(); HTMLString.Append("<html><body>"); HTMLString.Append("Submit data?"); HTMLString.Append("<form method=\'GET\' action=notify>"); HTMLString.Append("<input type='submit'>"); HTMLString.Append("<input type=button name='cmd:2' value='Cancel'>"); HTMLString.Append("</body></html>"); //Set the Text property to the HTML string. notification1.Text = HTMLString.ToString(); FileStream IconStream = new FileStream(".\\My Documents\\notify.ico", FileMode.Open, FileAccess.Read); notification1.Icon = new Icon(IconStream, 16, 16); notification1.Caption="Notification Demo"; notification1.Critical = false; // Display icon up to 10 seconds. notification1.InitialDuration = 10; notification1.Visible = true; }
Aggiungere il codice riportato di seguito per gestire l'evento ResponseSubmitted.
' When a ResponseSubmitted event occurs, this event handler ' parses the response to determine values in the HTML form. Private Sub Notification1_ResponseSubmitted(ByVal sender As Object, _ ByVal resevent As Microsoft.WindowsCE.Forms.ResponseSubmittedEventArgs) _ Handles Notification1.ResponseSubmitted If resevent.Response.Substring(0,6) = "notify" Then ' Add code here to respond to the notification. End If End Sub
// When a ResponseSubmitted event occurs, this event handler // parses the response to determine values in the HTML form. notification1.ResponseSubmitted += delegate (object obj, ResponseSubmittedEventArgs resevent) { if (resevent.Response.Substring(0,6) == "notify") { // Add code here to respond to the notification. } };
Compilazione del codice
In questo esempio sono richiesti riferimenti ai seguenti spazi dei nomi: