Функцията MsgBox()
1. Същност
Функцията MsgBox() изобразява диалогов прозорец в който се изписва дадено
съобщение, изчаква потребителят да натисне даден бутон и се връща цяло число,
показващо какъв бутон точно е натиснат.
2. Синтаксис
MsgBox(съобщение [, тип на прозореца [, заглавие на прозореца]])
- съобщението представлява текста, който ще се изпише в диалоговия прозорец.
- тип на прозореца - Това поле е незадължително. Цифров израз, който представлява
сумата от стойностите означаващи номера и типа на бутоните, които ще се изобразят,
стилът на иконата, която ще се използва и номерът на бутона по подразбиране, както
и на текстовото поле. Ако пропуснете бутоните, стойността по подразбиране е нула.Типът може да се запише и по следния начин:
MsgBoxStyle.Свойство1 [Or MsgBoxStyle.Свойство2]
- Заглавие на прозореца – Това поле също не е задължително. Тук се изписва името,
което ще се изпише в заглавната лента (titlebar) на диалоговия прозорец. Ако не се зададе
стойност, в заглавната лента ще се изпише заглавието на основния формуляр.
Тип на прозореца – MsgBoxStyle – стойности на номерациите са дадени в списъка
по-долу в следната таблица:
Име | Ст-ст | Описание | Изображение |
OKOnly | 0 | OK-бутон | ![]() |
OKCancel | 1 | OK и Cancel бутони | ![]() |
AbortRetryIgnore | 2 | Abort, Retry и Ignore бутони | ![]() |
YesNoCancel | 3 | Yes, No и Cancel бутони | ![]() |
YesNo | 4 | Yes и No бутони | ![]() |
RetryCancel | 5 | Retry и Cancel бутони | ![]() |
Critical | 16 | Critical Message икона | ![]() |
Question | 32 | Warning Query икона | ![]() |
Exclamation | 48 | Warning Message икона | ![]() |
Information | 64 | Information Message икона | ![]() |
DefaultButton1 | 0 | Първият бутон е по подразбиране | ![]() |
DefaultButton2 | 256 | Вторият бутон е по подразбиране | ![]() |
DefaultButton3 | 512 | Третият бутон е по подразбиране | ![]() |
ApplicationModal | 0 | Приложението е модално. Потребителя трябва да отговори на текстовото поле преди да продължи работата с текущото приложение. |
|
SystemModal | 4096 | Системата е модална. Всички приложения са в очакване на потребителски отговор. | |
MsgBoxSetForeground | 65536 | Настройва текстовото поле като прозорец на преден план. | |
MsgBoxRight | 524288 | Текстът е подравнен отдясно | ![]() |
MsgBoxRtlReading | 1048576 | Въведеният текст трябва да излиза от дясно на ляво, по арабската система. |
Първата група от стойности (0–5) описват номера и типа на бутоните, които ще се
изобразяват в диалоговия прозорец; Втората група (16, 32, 48, 64) описват стила на
иконата; третата група (0, 256, 512) определя кой бутон е по подразбиране; четвъртата
група (0, 4096) определят модалността на текстотовото съобщение и последната, пета
група определя дали диалоговият прозорец да бъде на преден план или не както и
подравняването и посоката на текста. Когато събирате финалната стойност за бутоните,
използвайте едно число от всяка група.
3. Върнати стойности
Както казахме в дефиницията на функцията, при натискането на бутон в диалоговият
прозорец, тя връща стойност:
Бутон | Стойност |
OK | 1 |
Cancel | 2 |
Abort | 3 |
Retry | 4 |
Ignore | 5 |
Yes | 6 |
No | 7 |
Тези върнати стойности се използват за обработка на информацията. Например, ако
си представим, че имате следният диалогов прозорец:

Ако натиснете бутона Yes, функцията връща 6, а при натискане на бутон No – 7. Това се използва по следния начин в кода:
Dim result As Integer
result = MsgBox(“Искате ли да започнете теста?”, MsgBoxStyle.Question Or_
MsgBoxStyle.YesNo)
If result = 6 Then ' Ако Потребителят е избрал Yes.
' Предприема едно действие.
Else
' Предприема друго действие.
End If
4. Пример
Примерът по-долу използва функцията MsgBox() за да изобрази съобщение за
грешка в диалогов прозорец с Yes и No бутони. Бутонът No е избран като бутон по
подразбиране. Това се прави чрез комбиниране на константни MsgBox стойности с
числов израз. В случай, че прибавите 4 (Yes/No бутони за комбинации) и 16 (Critical
Message иконата) и 256 (вторият бутон е по подразбиране) ви дава 276. Стойността
върната от MsgBox функцията зависи от бутонът, който е натиснал потребителя: Yes
връща стойност 6; No връща стойност 7.
Dim msg As String
Dim title As String
Dim style As MsgBoxStyle
Dim response As MsgBoxResult
msg = "Искате ли да продължите?" ' Дефинираме съобщение.
style = MsgBoxStyle.DefaultButton2 Or _
MsgBoxStyle.Critical Or MsgBoxStyle.YesNo
title = "MsgBox Demonstration" ' Дефинираме заглавие.
' Изобразяваме съобщението на екрана.
response = MsgBox(msg, style, title)
If response = MsgBoxResult.Yes Then ' Потребителят избира Yes.
' Предприема едно действие.
Else
' Предприема друго действие.
End If
- Влезте, за да пращате коментари.