Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Статьи - Артем Донцов -

Visual Basic .NET - Окна и формы

Все статьи / Интерфейс / Окна и формы

Отображение ошибок в стиле QIP или MSN

Автор: Артем Донцов | добавлено: 19.05.2011, 16:17 | просмотров: 3076 (0+) | комментариев: 0 | рейтинг: *x6

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

 

 

Как уже и было сказано ранее - цель обзора научиться самостоятельно делать вывод подобных сообщений. Делается это достаточно просто и даже не требуются особые навыки программирования, т.е. с задачей по силам справиться даже начинающим программистам.

 

Для начала создадим новое приложение, типа Windows Forms Application, у нас по умолчанию как всегда создается одна форма для проекта, но нам потребуется еще одна, добавим ее следующим образом Project - Add Windows Form..., дадим ей имя Alert - это будущая заготовка для нашего "алерта", сделаем свойство новой формы FormBorderStyle равным None, т.е. уберем рамку вокруг нее.

 

Далее поправим размеры формы Alert до нужного нам размера, следует сделать ее компактной. Затем разместим один Label по середине нашей формы - при помощи него мы будем отображать пользователю текст ошибки. Откроем окно редактирования кода для формы Alert и приступим к его написанию.

 

При помощи класса My.Computer.Screen мы можем получить размер рабочой области экрана (WorkingArea).

 

Свойство My.Computer.Screen.WorkingArea.Width - содержит ширину рабочего стола, а свойство Height - его длину. Основываясь на этом мы можем расчитать позицию вывода окошка на экране.

Me.SetDesktopLocation(My.Computer.Screen.WorkingArea.Width - <Ширина формы Alert>, _
My.Computer.Screen.WorkingArea.Height - <Высота формы Alert>

Чтобы отобразить форму в нужной части экрана, нам необходимо вычесть длину и ширину нашей формы от длины и ширины рабочего стола, иначе бы форма отображалась не в углу рабочего стола, а за его пределами. Данное действие можно облегчить следующим образом:

Private Sub Alert_Load() Handles MyBase.Load
 Me.SetDesktopLocation(My.Computer.Screen.WorkingArea.Width - Me.Size.Width, _
 My.Computer.Screen.WorkingArea.Height - Me.Size.Height)
End Sub

Чтобы закрыть окно, в свойство формы Click добавим:

Me.Close()


А для того чтобы приукрасить закрытие формы и сделать его более эффектным, сделаем плавное закрытие окна, добавим следующий код в событие FormClosing:

For FadeOut = 90 To 10 Step -10
 Me.Opacity = FadeOut / 100
 Me.Refresh()
 Threading.Thread.Sleep(40)
Next

Далее в пределе класса нашей самой первой формы Form1, создадим небольшое событие, для отображения текста и ошибки:

Public Sub Show(ByVal text As String, ByVal limit As Integer)
 If text.Length > limit Then
  MsgBox("Привышен лимит сообщения, уменьшите кол-во символов в сообщении")
 Else
  Label1.Text = text
 End If
 Alert.Show()
End Sub

limit необходим нам для ограничения символов текста ошибки, т.к. если оно будет слишком большим то может и не влезть в окно.

Добавим на Form1 кнопку Button и в событие Click разместим следующий код:

Show("Это ошибка", 15)

Пробуем запустить приложение и нажать кнопку. Если все было сделано правильно, то получится что то типа следующего:

 

 

Как видно, я украсил немного окошечко, сделав его окончательно в стиле QIP. Сделать можно следующим образом, выбираем себе рамку, и в свойстве формы Alert - BackgroundImage указываем до нее путь, все.

 

Скачать исходник проекта.

+ Добавить в избранное
    ? Помощь
Об авторе

Артем Донцов

Нет информации об авторе...

См. также:
Профиль автора
Артем Донцов
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики