Всплывающее окно (англ. pop-up) — окно, открываемое на экране компьютера в результате выполнения какой-либо операции.
В этой статье я покажу как сделать всплывающее окно, в нижнем правом углу экрана.
Создадим новый проект, добавим кнопку, текст бокс, и создадим еще одну форму, с названием popup.vb.
Первая форма.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вторая:
[Ссылки могут видеть только зарегистрированные пользователи. ]
На вторую форму кидаем 3 таймера.
Переходим к коду. (второй.)
Я использовал этот дизайн формы.
В ФормЛоад пихаем:
Код:
Me.Top = Screen.PrimaryScreen.WorkingArea.Height - Me.Height
Me.Left = Screen.PrimaryScreen.WorkingArea.Width - Me.Width
'Что бы форма открывалась в нижнем правом углу.
Timer1.Start()
Timer1.Interval = 25
Timer3.Interval = 25
Timer2.Interval = 5000
Me.TopMost = True 'Что бы форма была поверх всех окон.
В первый таймер пишем:
Код:
Me.Opacity = Me.Opacity + 0.1
If Math.Round(Me.Opacity, 1) = 1 Then
Timer1.Stop()
Timer2.Start()
End If
[COLOR="rgb(0, 255, 255)"]Это отвечает за плавное появление формы.[/COLOR]
Второй таймер отвечает, через сколько времени окно исчезнет.
Код:
Timer3.Start()
Timer2.Stop()
В нашем случае это 5 секунд.
Ну и третий таймер отвечает за плавное исчезновение формы.
Код:
Me.Opacity = Me.Opacity - 0.1
If Math.Round(Me.Opacity, 1) = 0 Then
Me.Hide()
Timer3.Stop()
Me.Dispose()
Form1.Button1.Enabled = True
End If
Вернемся к первой форме.
Здесь нужен только код кнопки.
Вставляем:
Код:
popup.Show() 'открывает окно
popup.Label1.Text = TextBox1.Text 'текст и текстбокса будет высвечивать всплывающее окно.
Button1.Enabled = False 'отключаем кнопку на время показа окна.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
popup.Show()
popup.Label1.Text = TextBox1.Text
Button1.Enabled = False
End Sub
End Class
Imports System.Runtime.InteropServices
Public Class popup
<StructLayout(LayoutKind.Sequential)> _
Public Structure MARGINS
Public Destra As Integer
Public Sinistra As Integer
Public Su As Integer
Public Giu As Integer
End Structure
Declare Auto Function DwmIsCompositionEnabled Lib "dwmapi.dll" Alias "DwmIsCompositionEnabled" (ByRef pfEnabled As Boolean) As Integer
Declare Auto Function DwmExtendFrameIntoClientArea Lib "dwmapi.dll" Alias "DwmExtendFrameIntoClientArea" (ByVal hWnd As IntPtr, ByRef pMargin As MARGINS) As Integer
Dim pMargins As New MARGINS With {.Su = -1, .Sinistra = -1, .Destra = -1, .Giu = -1}
Private Sub popup_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim en As Boolean = False
DwmIsCompositionEnabled(en)
If en Then
DwmExtendFrameIntoClientArea(Me.Handle, pMargins)
End If
Me.TransparencyKey = Color.FromKnownColor(KnownColor.ActiveCaption)
Me.BackColor = Me.TransparencyKey
Me.Top = Screen.PrimaryScreen.WorkingArea.Height - Me.Height
Me.Left = Screen.PrimaryScreen.WorkingArea.Width - Me.Width
Timer1.Start()
Timer1.Interval = 25
Timer3.Interval = 25
Timer2.Interval = 5000
Me.TopMost = True
End Sub
Private Sub Timer11(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Opacity = Me.Opacity + 0.1
If Math.Round(Me.Opacity, 1) = 1 Then
Timer1.Stop()
Timer2.Start()
End If
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Timer3.Start()
Timer2.Stop()
End Sub
Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
Me.Opacity = Me.Opacity - 0.1
If Math.Round(Me.Opacity, 1) = 0 Then
Me.Hide()
Timer3.Stop()
Me.Dispose()
Form1.Button1.Enabled = True
End If
End Sub
End Class
________________
Последний раз редактировалось OrBiT_DaRk; 27.11.2013 в 17:19.