Поделиться через


Пошаговое руководство. Отправка уведомления

Обновлен: Ноябрь 2007

Можно использовать Notification при необходимости пользователю предпринять действие в приложении, например, подтвердить отсылку данных. Обычно, уведомление посылается при возникновении события или выполнении условия, но, для простоты, этот пример отображает уведомление при нажатии на кнопку мыши. Можно ответить на уведомление процессом, предоставив код обработчику событий ResponseSubmitted.

Сообщение в уведомлении может быть текстовым или в формате HTML. HTML позволяет посылать небольшие HTML-формы, содержащие флажки, кнопки, списки и другие элементы HTML. В этом примере используется простая форма с кнопками Подтвердить и Отменить.

Кнопка Отменить определяется идентификатором "cmd:2", который в Windows CE используется для отклонения уведомлений. Если HTML-кнопка или другой элемент во всплывающем сообщении называется cmd:2, событие ResponseSubmitted не вызывается. Уведомление отклоняется, но его значок помещается в заголовок окна, чтобы получить ответ позже.

Чтобы отправить уведомление

  1. Создайте приложение для карманного ПК под Windows.

  2. Добавьте на форму элементы управления Notification и Button.

  3. Создайте экземпляр Notification.

    Me.Notification1 = New Microsoft.WindowsCE.Forms.Notification
    
    this.notification1 = new Microsoft.WindowsCE.Forms.Notification();
    
  4. В обработчик событий кнопки Click добавьте следующий код:

    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;
    }
    
  5. Добавьте следующий код в обработчик событий 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.
            }
        };
    

Компиляция кода

Для этого примера требуются ссылки на следующие пространства имен:

См. также

Задачи

Пример Notification

Ссылки

Notification

Другие ресурсы

Разработка карманного ПК и .NET Compact Framework