Самоучитель Visual Basic.Net Д.Зак
- 2. ÁÁÊ 32. 973-018ÿ7
ÓÄÊ 681.3.06(075)
Ç-18
Ç-18 Ñàìîó÷èòåëü Visual Basic .NET/Ä. Çàê. — Êèåâ: BHV; ÑÏá.: Ïèòåð, 2003 —
558 ñ.: èë.
ISBN 966-552-109-8
ISBN 5-94723-604-4
 êíèãå îïèñàíû ïðèåìû ðàáîòû â ñðåäå .NET, à òàêæå ïðîãðàììèðîâàíèå íà ÿçûêå Visual
Basic .NET. Îáó÷åíèå ñòðîèòñÿ íà ïðàêòè÷åñêîé îñíîâå, ñ ïåðâîãî çàíÿòèÿ ÷èòàòåëü ñîçäàåò ãîòî-
âûå ïðèëîæåíèÿ. Êîíñòðóêöèè ÿçûêà Visual Basic, à òàêæå ïåðåìåííûå, öèêëû, óïðàâëÿþùèå
ñòðóêòóðû, ìàññèâû è äðóãèå ýëåìåíòû ÿçûêà ðàññìàòðèâàþòñÿ ïîñëåäîâàòåëüíî, ïî ìåðå óñëîæ-
íåíèÿ ïðèìåðîâ. Âíèìàíèþ ÷èòàòåëÿ ïðåäëàãàåòñÿ òàêæå ìàòåðèàë, ïîñâÿùåííûé îáúåêòíî-îðè-
åíòèðîâàííîìó ïðîãðàììèðîâàíèþ, ïðîåêòèðîâàíèþ ïðèëîæåíèé è ìåòîäàì îáðàáîòêè îøèáîê.
Êíèãà áóäåò ïîëåçíà íà÷èíàþùèì ïðîãðàììèñòàì è ñòóäåíòàì.
ÁÁÊ 32 973-018ÿ7
ÓÄÊ 681.3.06(075)
Èíôîðìàöèÿ, ñîäåðæàùàÿñÿ â äàííîé êíèãå, ïîëó÷åíà èç èñòî÷íèêîâ, ðàññìàòðèâàåìûõ èçäàòåëüñòâîì êàê íàäåæíûå. Òåì íå
ìåíåå, èìåÿ â âèäó âîçìîæíûå ÷åëîâå÷åñêèå èëè òåõíè÷åñêèå îøèáêè, èçäàòåëüñòâî íå ìîæåò ãàðàíòèðîâàòü àáñîëþòíóþ òî÷-
íîñòü è ïîëíîòó ïðèâîäèìûõ ñâåäåíèé è íå íåñåò îòâåòñòâåííîñòè çà âîçìîæíûå îøèáêè, ñâÿçàííûå ñ èñïîëüçîâàíèåì êíèãè.
ISBN 966-552-109-8 © Cource Technology, a division of Thomson Leaming, Inc., 2002
ISBN 0-619-01662-0 (àíãë.) © Èçäàòåëüñêàÿ ãðóïïà BHV, Êèåâ, 2003
ISBN 5-94723-604-4 ÇÀÎ © ÇÀÎ Èçäàòåëüñêèé äîì «Ïèòåð», 2003
- 3. Êðàòêîå ñîäåðæàíèå
Ïðåäèñëîâèå.......................................................................................13
Ââåäåíèå ............................................................................................15
Òåìà 1. Çíàêîìñòâî ñ Visual Basic .NET...............................................17
Òåìà 2. Ýòàïû ðàçðàáîòêè ïðèëîæåíèé .............................................64
Òåìà 3. Ïåðåìåííûå è êîíñòàíòû ....................................................109
Òåìà 4. Óñëîâíûå îïåðàòîðû...........................................................155
Òåìà 5. Åùå ðàç îá óñëîâíûõ îïåðàòîðàõ ........................................203
Òåìà 6. Öèêëû.................................................................................257
Òåìà 7. Ïðîöåäóðû è ôóíêöèè.........................................................315
Òåìà 8. Ðàáîòà ñî ñòðîêàìè .............................................................352
Òåìà 9. Ôàéëû ïîñëåäîâàòåëüíîãî äîñòóïà è ïå÷àòü .......................387
Òåìà 10. Ôàéëû ïðîèçâîëüíîãî äîñòóïà ............................................429
Òåìà 11. Ìàññèâû..............................................................................461
Òåìà 12. Ðàáîòà ñ áàçàìè äàííûõ......................................................493
Ïðèëîæåíèå À. Îáðàáîòêà îøèáîê è îòëàäêà...................................528
Ïðèëîæåíèå Á. Ïàíåëü èíñòðóìåíòîâ êîíñòðóêòîðà
Windows-ôîðì.........................................................547
Àëôàâèòíûé óêàçàòåëü .....................................................................551
- 4. Ñîäåðæàíèå
Ïðåäèñëîâèå ................................................................................13
Ââåäåíèå ......................................................................................15
Òåìà 1. Çíàêîìñòâî ñ Visual Basic .NET.......................................17
Ñîçäàíèå çàñòàâêè Copyright .......................................................................................17
Çàíÿòèå 1. Ñîçäàíèå Windows-ïðèëîæåíèé .................................................................18
Çàïóñê è íàñòðîéêà Visual Studio .NET ...................................................................18
Ñîçäàíèå ðåøåíèÿ äëÿ çàñòàâêè Copyright ............................................................22
Îêíà Windows Form Designer è Solution Explorer ....................................................27
Îêíî Properties......................................................................................................30
Ñâîéñòâà îáúåêòà Windows Form ...........................................................................32
Ñîõðàíåíèå ðåøåíèÿ è âûõîä èç Visual Studio .NET ...............................................36
Çàíÿòèå 2. Ðàáîòà ñ ýëåìåíòàìè óïðàâëåíèÿ ...............................................................38
Îêíî Toolbox.........................................................................................................38
Èñïîëüçîâàíèå èíñòðóìåíòà Label.........................................................................42
Îäíîâðåìåííîå èçìåíåíèå ñâîéñòâà íåñêîëüêèõ ýëåìåíòîâ óïðàâëåíèÿ...............46
Èñïîëüçîâàíèå ìåíþ Format .................................................................................48
Ïðèìåíåíèå èíñòðóìåíòà PictureBox .....................................................................48
Èñïîëüçîâàíèå èíñòðóìåíòà Button.......................................................................49
Çàïóñê è çàâåðøåíèå ðàáîòû ïðèëîæåíèÿ.............................................................51
Ñîçäàíèå ïðîãðàììû íà Visual Basic .NET..............................................................53
Çàíÿòèå 3. Çàâåðøåíèå ðàáîòû íàä çàñòàâêîé Copyright..............................................58
Ïðèìåíåíèå èíñòðóìåíòà Timer ............................................................................58
Íàñòðîéêà ñâîéñòâà FormBorderStyle .....................................................................61
Ñâîéñòâà MinimizeBox, MaximizeBox è ControlBox ...................................................62
- 5. Òåìà 2. Ýòàïû ðàçðàáîòêè ïðèëîæåíèé.....................................64
Ñîçäàíèå ïðèëîæåíèÿ äëÿ ïðèåìà çàêàçîâ..................................................................64
Çàíÿòèå 1. Ïðîåêòèðîâàíèå îáúåêòíî-îðèåíòèðîâàííîãî ïðèëîæåíèÿ ........................65
Ïîðÿäîê ñîçäàíèÿ îáúåêòíî-îðèåíòèðîâàííîãî óïðàâëÿåìîãî ñîáûòèÿìè
ïðèëîæåíèÿ .........................................................................................................65
Îïèñàíèå îáúåêòîâ ïðèëîæåíèÿ è âûïîëíÿåìûõ èìè çàäà÷ .................................66
Ðàçðàáîòêà ýñêèçà èíòåðôåéñà ïîëüçîâàòåëÿ........................................................70
Çàíÿòèå 2. Ñîçäàíèå èíòåðôåéñà ïîëüçîâàòåëÿ...........................................................74
Ðàçìåùåíèå ýëåìåíòîâ èíòåðôåéñà......................................................................74
Ïðèìåíåíèå ãðàôèêè, øðèôòîâ è öâåòà................................................................76
Âûáîð ñòèëÿ ðàìêè ýëåìåíòà óïðàâëåíèÿ .............................................................79
Ñîçäàíèå íàäïèñè íà ýëåìåíòå óïðàâëåíèÿ ..........................................................79
Íàçíà÷åíèå êëàâèø áûñòðîãî äîñòóïà ..................................................................82
Íàñòðîéêà ñâîéñòâà TabIndex................................................................................84
Çàíÿòèå 3. Ïðîãðàììèðîâàíèå, òåñòèðîâàíèå è îòëàäêà ïðèëîæåíèÿ..........................91
Ïðîãðàììèðîâàíèå ïðèëîæåíèÿ............................................................................91
Ñîçäàíèå ïðîãðàììû äëÿ êíîïêè Clear Screen .......................................................92
Àðèôìåòè÷åñêèå âûðàæåíèÿ.................................................................................97
Ñîçäàíèå ïðîãðàììû äëÿ êíîïêè CalcButton..........................................................98
Ôóíêöèÿ Val ........................................................................................................102
Ôóíêöèÿ Format...................................................................................................104
Òåñòèðîâàíèå è îòëàäêà ïðèëîæåíèÿ ..................................................................106
Ñîçäàíèå äîêóìåíòàöèè ......................................................................................107
Òåìà 3. Ïåðåìåííûå è êîíñòàíòû ............................................109
Âíåñåíèå èçìåíåíèé â ïðèëîæåíèå Skate-Away Sales ................................................109
Çàíÿòèå 1. Ñîçäàíèå ïåðåìåííûõ è èìåíîâàííûõ êîíñòàíò .......................................110
Èñïîëüçîâàíèå ïåðåìåííûõ äëÿ õðàíåíèÿ èíôîðìàöèè ......................................110
Îáúÿâëåíèå ïåðåìåííîé .....................................................................................115
Ïðèñâàèâàíèå çíà÷åíèé ïåðåìåííîé...................................................................116
Îáëàñòü âèäèìîñòè ïåðåìåííîé ..........................................................................117
Èìåíîâàííûå êîíñòàíòû .....................................................................................124
Çàíÿòèå 2. Èçìåíåíèå ïðèëîæåíèÿ Skate-Away Sales .................................................127
Õðàíåíèå èíôîðìàöèè â ïåðåìåííûõ..................................................................127
Èçìåíåíèå ïðîãðàììû êíîïêè Calculate Order .....................................................129
Êîíêàòåíàöèÿ ñòðîê ............................................................................................136
Ôóíêöèÿ InputBox................................................................................................138
Ñèìâîë íîâîé ñòðîêè ..........................................................................................142
Íàçíà÷åíèå êíîïêè ïî óìîë÷àíèþ ......................................................................144
Çàíÿòèå 3. Äîïîëíåíèÿ ê ïðèëîæåíèþ Skate-Away Sales............................................146
Èçìåíåíèå ïðîöåäóð îáðàáîòêè ñîáûòèé Load è Click..........................................146
Ñîäåðæàíèå 7
- 6. Ñòàòè÷åñêèå ïåðåìåííûå ....................................................................................151
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ TextChanged ......................................................152
Ñâÿçûâàíèå ïðîöåäóðû ñ ðàçëè÷íûìè îáúåêòàìè èëè ñîáûòèÿìè........................153
Òåìà 4. Óñëîâíûå îïåðàòîðû....................................................155
Ñîçäàíèå ïðèëîæåíèÿ, âû÷èñëÿþùåãî åæåìåñÿ÷íûå ïëàòåæè...................................155
Çàíÿòèå 1. Îïåðàòîð If…Then…Else............................................................................156
Âåòâÿùèåñÿ ïðîöåññû .........................................................................................156
Ñîçäàíèå ïñåâäîêîäà äëÿ óñëîâíûõ îïåðàòîðîâ If è If…Else................................157
Ïðåäñòàâëåíèå îïåðàòîðîâ If è If…Else â ñòðóêòóðíîé ñõåìå àëãîðèòìà ..............159
Èñïîëüçîâàíèå îïåðàòîðîâ If è If…Else ...............................................................160
Îïåðàòîðû ñðàâíåíèÿ .........................................................................................161
Ëîãè÷åñêèå îïåðàòîðû ........................................................................................166
Ôóíêöèè UCase è LCase .......................................................................................173
Çàíÿòèå 2. Ïðèëîæåíèå, âû÷èñëÿþùåå ñóììó åæåìåñÿ÷íûõ ïëàòåæåé ......................177
Ðàçðàáîòêà èíòåðôåéñà ïîëüçîâàòåëÿ.................................................................177
Ñîçäàíèå ïðîöåäóðû CalcPayButton_Click.............................................................183
Ìåòîä MessageBox.Show......................................................................................189
Ïðîãðàììèðîâàíèå ñîáûòèÿ TextChanged............................................................195
Çàíÿòèå 3. Çàâåðøåíèå ïðèëîæåíèÿ Monthly Payment Calculator ................................197
Ñîáûòèå KeyPress................................................................................................197
Âûðàâíèâàíèå òåêñòà â ýëåìåíòå óïðàâëåíèÿ Label.............................................201
Òåìà 5. Åùå ðàç îá óñëîâíûõ îïåðàòîðàõ................................203
Ðàçðàáîòêà ïðèëîæåíèÿ äëÿ ìàòåìàòè÷åñêîãî ïðàêòèêóìà ........................................203
Çàíÿòèå 1. Âëîæåííûå óñëîâíûå îïåðàòîðû, îïåðàòîðû If...ElseIf...Else è Case .........204
Âëîæåííûå óñëîâíûå îïåðàòîðû.........................................................................204
Ëîãè÷åñêèå îøèáêè â óñëîâíûõ îïåðàòîðàõ ........................................................209
Îïåðàòîð If...ElseIf...Else .....................................................................................215
Îïåðàòîð Case ....................................................................................................217
Îïåðàòîðû Is, TypeOf…Is è Like...........................................................................222
Çàíÿòèå 2. Ðàçðàáîòêà ïðèëîæåíèÿ Math Practice.......................................................228
Çàâåðøåíèå èíòåðôåéñà ïîëüçîâàòåëÿ ...............................................................228
Ïðîãðàììèðîâàíèå ïðèëîæåíèÿ Math Practice .....................................................235
Ñîçäàíèå ïîëüçîâàòåëüñêîé ïðîöåäóðû ..............................................................237
Ñîçäàíèå ïðîöåäóð îáðàáîòêè ñîáûòèÿ Click ïåðåêëþ÷àòåëåé Grade 1
è Grade 2.............................................................................................................241
Ñîçäàíèå ïðîöåäóð îáðàáîòêè ñîáûòèÿ Click ïåðåêëþ÷àòåëåé Addition
è Subtraction........................................................................................................244
Ñîçäàíèå ïðîöåäóðû îáðàáîòêè ñîáûòèÿ Load ôîðìû.........................................246
8 Ñîäåðæàíèå
- 7. Çàíÿòèå 3. Çàâåðøåíèå ðàçðàáîòêè ïðèëîæåíèÿ Math Practice...................................249
Ñîçäàíèå ïðîöåäóðû CheckAnswerButton_Click ....................................................249
Ñîçäàíèå ïðîöåäóðû SummaryCheckBox_Click......................................................254
Òåìà 6. Öèêëû ............................................................................257
Ïðîåêòèðîâàíèå ïðèëîæåíèÿ, îïðåäåëÿþùåãî ñåìåñòðîâóþ îöåíêó
ïî ïðîãðàììèðîâàíèþ...............................................................................................257
Çàíÿòèå 1. Öèêëè÷åñêèå êîíñòðóêöèè ........................................................................258
Öèêëè÷åñêèå êîíñòðóêöèè ...................................................................................258
Îïåðàòîð For…Next .............................................................................................259
Îïåðàòîð Do…Loop..............................................................................................269
Ïðèìåíåíèå ñ÷åò÷èêîâ è ñóììèðóþùèõ ïåðåìåííûõ...........................................276
Çàíÿòèå 2. Ðàáîòà ñ ñåìåéñòâîì Controls ...................................................................285
Ñåìåéñòâî ýëåìåíòîâ óïðàâëåíèÿ Controls ..........................................................285
Îáúåêòíûå ïåðåìåííûå ......................................................................................288
Îïåðàòîð For Each…Next .....................................................................................291
Ñîçäàíèå ïîëüçîâàòåëüñêèõ ñåìåéñòâ..................................................................296
Ïðèëîæåíèå, âû÷èñëÿþùåå ñåìåñòðîâóþ îöåíêó ïî ïðîãðàììèðîâàíèþ.............299
Ðàçðàáîòêà ïðîöåäóðû GradeForm_Load ..............................................................301
Ðàçðàáîòêà îáðàáîò÷èêà ñîáûòèÿ Click ðàñïîëîæåííûõ â ôîðìå ôëàæêîâ...........302
Çàíÿòèå 3. Çàâåðøåíèå ïðèëîæåíèÿ äëÿ îïðåäåëåíèÿ îöåíêè
ïî ïðîãðàììèðîâàíèþ..............................................................................307
Ðàçðàáîòêà ïðîöåäóðû DisplayButton_Click...........................................................307
Ñîçäàíèå ïðîöåäóðû îáðàáîòêè ñîáûòèÿ Enter ïîëåé ôîðìû ..............................311
Ñîçäàíèå ïðîöåäóðû îáðàáîòêè ñîáûòèÿ Closing îáúåêòà GradeForm...................313
Òåìà 7. Ïðîöåäóðû è ôóíêöèè .................................................315
Ïðîåêòèðîâàíèå áóõãàëòåðñêîãî ïðèëîæåíèÿ............................................................315
Çàíÿòèå 1. Ïðîåêòèðîâàíèå ïîäïðîãðàìì è ôóíêöèé.................................................316
Ïðîöåäóðû è ïîäïðîãðàììû................................................................................316
Ïåðåäà÷à àðãóìåíòîâ â ïîëüçîâàòåëüñêèå ïîäïðîãðàììû ...................................317
Ôóíêöèè..............................................................................................................324
Çàíÿòèå 2. Èñïîëüçîâàíèå ýëåìåíòà óïðàâëåíèÿ ListBox............................................327
Ïðîåêòèðîâàíèå èíòåðôåéñà áóõãàëòåðñêîãî ïðèëîæåíèÿ...................................327
Äîáàâëåíèå â ôîðìó ýëåìåíòà óïðàâëåíèÿ ListBox..............................................328
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ CalculateButton_Click ..........................................336
Ñîçäàíèå ôóíêöèè GetFwtTax..............................................................................337
Çàâåðøåíèå îáðàáîò÷èêà ñîáûòèÿ CalculateButton_Click ......................................342
Î÷èñòêà ñîäåðæèìîãî ýëåìåíòîâ óïðàâëåíèÿ Label.............................................344
Ñîäåðæàíèå 9
- 8. Çàíÿòèå 3. Çàâåðøåíèå ïðîåêòèðîâàíèÿ áóõãàëòåðñêîãî ïðèëîæåíèÿ........................346
Äîáàâëåíèå ñóùåñòâóþùåé ôîðìû â ðåøåíèå ....................................................346
Ïðîöåäóðà Sub Main ............................................................................................348
Ñîçäàíèå ýêçåìïëÿðà ôîðìû...............................................................................349
Òåìà 8. Ðàáîòà ñî ñòðîêàìè.......................................................352
Ñîçäàíèå èãðû «Âèñåëèöà» .......................................................................................352
Çàíÿòèå 1. Ðàáîòà ñî ñòðîêàìè ..................................................................................353
Îïðåäåëåíèå êîëè÷åñòâà ñèìâîëîâ â ñòðîêå .......................................................353
Óäàëåíèå ñèìâîëîâ èç ñòðîêè .............................................................................354
Ïîèñê ïîäñòðîêè â íà÷àëå èëè êîíöå ñòðîêè .......................................................358
Èçâëå÷åíèå ñèìâîëîâ èç ñòðîêè..........................................................................360
Çàìåíà ñèìâîëîâ â ñòðîêå...................................................................................362
Äîáàâëåíèå ñèìâîëîâ â ñòðîêó ...........................................................................364
Ïîèñê çàäàííîé ïîñëåäîâàòåëüíîñòè ñèìâîëîâ â ñòðîêå .....................................365
Çàíÿòèå 2. Èñïîëüçîâàíèå ýëåìåíòà óïðàâëåíèÿ MainMenu .......................................368
Çàâåðøåíèå èíòåðôåéñà èãðû «Âèñåëèöà»..........................................................368
Ñîçäàíèå ìåíþ ...................................................................................................369
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ FileExitMenuItem_Click ........................................373
Çàíÿòèå 3. Çàâåðøåíèå èãðû «Âèñåëèöà» ..................................................................375
Ïðèëîæåíèå äëÿ èãðû «Âèñåëèöà»......................................................................375
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ FileNewMenuItem_Click .......................................376
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ Click äëÿ íàäïèñåé, ñîäåðæàùèõ áóêâû ..............379
Òåìà 9. Ôàéëû ïîñëåäîâàòåëüíîãî äîñòóïà è ïå÷àòü.............387
Ñîçäàíèå ïðèëîæåíèÿ äëÿ ó÷åòà ðàçëè÷íûõ ìåðîïðèÿòèé.........................................387
Çàíÿòèå 1. Ôàéëû ïîñëåäîâàòåëüíîãî äîñòóïà...........................................................388
Òèïû ôàéëîâ.......................................................................................................388
Ôàéëû ïîñëåäîâàòåëüíîãî äîñòóïà .....................................................................388
Èñïîëüçîâàíèå îáúåêòîâ StreamWriter è StreamReader ........................................390
Îòêðûòèå ôàéëà ïîñëåäîâàòåëüíîãî äîñòóïà ......................................................390
Çàïèñü â ôàéë ïîñëåäîâàòåëüíîãî äîñòóïà .........................................................393
×òåíèå èç ôàéëà ïîñëåäîâàòåëüíîãî äîñòóïà......................................................397
Çàêðûòèå ôàéëà ïîñëåäîâàòåëüíîãî äîñòóïà.......................................................398
Äåìîíñòðàöèÿ ðàáîòû ñ ôàéëàìè ïîñëåäîâàòåëüíîãî äîñòóïà ............................399
Çàíÿòèå 2. Èñïîëüçîâàíèå ýëåìåíòà óïðàâëåíèÿ DateTimePicker ...............................403
Çàâåðøåíèå èíòåðôåéñà ïðèëîæåíèÿ Carriage House ..........................................403
Äîáàâëåíèå ýëåìåíòà óïðàâëåíèÿ DateTimePicker...............................................404
Ñâîéñòâî ShowUpDown........................................................................................407
Ñâîéñòâî Format..................................................................................................408
Ñâîéñòâî Value....................................................................................................409
Ñâîéñòâî Text......................................................................................................412
10 Ñîäåðæàíèå
- 9. Êàê ïîëó÷èòü ñèñòåìíîå âðåìÿ............................................................................412
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ CarriageForm_Load .............................................414
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ AddButton_Click..................................................418
Çàíÿòèå 3. Çàâåðøåíèå ðàçðàáîòêè ïðèëîæåíèÿ Carriage House ................................422
Ïðèëîæåíèå äëÿ Carriage House ..........................................................................422
Äîáàâëåíèå ýëåìåíòà óïðàâëåíèÿ PrintDocument ................................................422
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ PrintButton_Click.................................................423
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ PrintDocument_PrintPage.....................................424
Ìåòîä e.Graphics.DrawString ................................................................................425
Òåìà 10. Ôàéëû ïðîèçâîëüíîãî äîñòóïà..................................429
Ñîçäàíèå ïðèëîæåíèÿ äëÿ ñåìèíàðà .........................................................................429
Çàíÿòèå 1. Ðàáîòà ñ ôàéëàìè ïðîèçâîëüíîãî äîñòóïà................................................430
Ñðàâíåíèå ôàéëîâ ïðîèçâîëüíîãî è ïîñëåäîâàòåëüíîãî äîñòóïà ........................430
Ñîçäàíèå ñòðóêòóðû çàïèñè.................................................................................432
Îáúÿâëåíèå ïåðåìåííîé çàïèñè..........................................................................434
Îòêðûòèå ôàéëà ïðîèçâîëüíîãî äîñòóïà.............................................................434
Ñîõðàíåíèå çàïèñè â ôàéëå ïðîèçâîëüíîãî äîñòóïà ...........................................435
×òåíèå çàïèñåé èç ôàéëà ïðîèçâîëüíîãî äîñòóïà ...............................................438
Çàêðûòèå ôàéëà ïðîèçâîëüíîãî äîñòóïà .............................................................439
Çàíÿòèå 2. Èñïîëüçîâàíèå ôàéëà ïðîèçâîëüíîãî äîñòóïà..........................................441
Ïðèëîæåíèå äëÿ ñåìèíàðà ..................................................................................441
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ InitializeButton_ Click ..........................................443
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ AddButton_Click..................................................446
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ DisplayButton_Click .............................................449
Çàíÿòèå 3. Çàâåðøåíèå ïðèëîæåíèÿ äëÿ ñåìèíàðà....................................................453
Ñîçäàíèå ïðîöåäóð äëÿ ïðèëîæåíèÿ Seminar ......................................................453
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ RemoteButton_Click ............................................453
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ PrintButton_Click.................................................456
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ SeminarPrintDocument_PrintPage.........................457
Òåìà 11. Ìàññèâû.......................................................................461
Ñîçäàíèå ïðèëîæåíèÿ äëÿ ðàñ÷åòà ñóììû íàëîãà......................................................461
Çàíÿòèå 1. Èñïîëüçîâàíèå îäíîìåðíîãî ìàññèâà .......................................................462
Ìàññèâû..............................................................................................................462
Îäíîìåðíûå ìàññèâû .........................................................................................463
Çàïèñü äàííûõ â îäíîìåðíûé ìàññèâ ..................................................................465
Èñïîëüçîâàíèå îäíîìåðíûõ ìàññèâîâ .................................................................466
Îòîáðàæåíèå ñîäåðæèìîãî îäíîìåðíîãî ìàññèâà ...............................................466
Èñïîëüçîâàíèå èíäåêñà äëÿ äîñòóïà ê ýëåìåíòó îäíîìåðíîãî ìàññèâà................468
Ïîèñê â îäíîìåðíîì ìàññèâå ..............................................................................469
Âû÷èñëåíèå ñðåäíåãî àðèôìåòè÷åñêîãî ýëåìåíòîâ ÷èñëîâîãî ìàññèâà ...............470
Ñîäåðæàíèå 11
- 10. Ïîèñê ýëåìåíòà ñ ìàêñèìàëüíûì çíà÷åíèåì........................................................471
Èçìåíåíèå ýëåìåíòîâ îäíîìåðíîãî ìàññèâà .......................................................472
Ñîðòèðîâêà ýëåìåíòîâ îäíîìåðíîãî ìàññèâà ......................................................473
Çàíÿòèå 2. Ìàññèâû è íåîäíîðîäíûå äàííûå ............................................................477
Ïàðàëëåëüíûå îäíîìåðíûå ìàññèâû ...................................................................477
Õðàíåíèå çàïèñåé â îäíîìåðíîì ìàññèâå............................................................479
Çàíÿòèå 3. Èñïîëüçîâàíèå äâóõìåðíûõ ìàññèâîâ.......................................................482
Äâóõìåðíûå ìàññèâû ..........................................................................................482
Õðàíåíèå äàííûõ â äâóõìåðíîì ìàññèâå.............................................................484
Âû÷èñëåíèå ñóììû çíà÷åíèé, õðàíÿùèõñÿ â äâóõìåðíîì ìàññèâå .......................485
Ïðèëîæåíèå äëÿ ðàñ÷åòà ïîäîõîäíîãî íàëîãà.....................................................486
Ñîçäàíèå îáðàáîò÷èêà ñîáûòèÿ CalculateButton_Click ..........................................489
Òåìà 12. Ðàáîòà ñ áàçàìè äàííûõ ............................................493
Ñîçäàíèå ïðèëîæåíèÿ äëÿ ïðîñìîòðà èíôîðìàöèè î ñîòðóäíèêàõ.............................493
Çàíÿòèå 1. Äîñòóï ê áàçå äàííûõ ñ èñïîëüçîâàíèåì Windows-ôîðìû ........................494
Ðåëÿöèîííûå áàçû äàííûõ..................................................................................494
Äîáàâëåíèå îáúåêòà OleDbDataAdapter â Windows-ôîðìó ...................................496
SQL .....................................................................................................................501
Ñîçäàíèå íàáîðà äàííûõ.....................................................................................507
Äîáàâëåíèå â ôîðìó ýëåìåíòà óïðàâëåíèÿ DataGrid ...........................................510
Íàñòðîéêà âíåøíåãî âèäà ýëåìåíòà óïðàâëåíèÿ EmployDataGrid.........................512
Çàíÿòèå 2. Äîñòóï ê áàçå äàííûõ ñ èñïîëüçîâàíèåì web-ôîðìû................................515
Ñîçäàíèå web-ïðèëîæåíèÿ..................................................................................515
Äîáàâëåíèå îáúåêòà OleDbDataAdapter â web-ôîðìó ..........................................517
Ñîçäàíèå íàáîðà äàííûõ.....................................................................................522
Äîáàâëåíèå â ôîðìó ýëåìåíòà óïðàâëåíèÿ DataGrid ...........................................524
Íàñòðîéêà âíåøíåãî âèäà ýëåìåíòà óïðàâëåíèÿ EmployDataGrid.........................526
Ïðèëîæåíèå À. Îáðàáîòêà îøèáîê è îòëàäêà........................528
Òèïû îøèáîê.......................................................................................................529
Èñêëþ÷åíèÿ è îáðàáîòêà èñêëþ÷åíèé .................................................................532
Ñîçäàíèå ñîáñòâåííûõ èñêëþ÷åíèé.....................................................................539
Îòëàäêà ..............................................................................................................540
Ïðèëîæåíèå Á. Ïàíåëü èíñòðóìåíòîâ êîíñòðóêòîðà
Windows-ôîðì................................................547
Àëôàâèòíûé óêàçàòåëü .............................................................551
12 Ñîäåðæàíèå
- 11. Ïðåäèñëîâèå
Visual Basic .NET — ýòî ÿçûê, êîòîðûé ïðåäíàçíà÷åí äëÿ ðàçðàáîòêè ïðèëîæåíèé
â ñðåäå Visual Studio .NET. Îí ïðîñò â îñâîåíèè è ïðèìåíåíèè è èñêëþ÷èòåëüíî
ýôôåêòèâåí. Ïåðâàÿ âåðñèÿ ÿçûêà ïîÿâèëàñü â ìàå 1991 ãîäà. Ýòîò ïðîäóêò çà-
ìåòíî îáëåã÷èë ïðîöåññ ñîçäàíèÿ ïîëíîôóíêöèîíàëüíûõ Windows-ïðèëîæåíèé.
Ñ òåõ ïîð ïðîøëî áîëåå äåñÿòè ëåò, â òå÷åíèå êîòîðûõ èñõîäíûé ÿçûê, èçìåíèâ-
øèé ìèð êîìïüþòåðíûõ òåõíîëîãèé, àêòèâíî ðàçâèâàëñÿ. Íà ñåãîäíÿøíèé äåíü
íà íåì íàïèñàíî áîëüøå Windows-ïðèëîæåíèé, ÷åì íà êàêîì-ëèáî äðóãîì ÿçûêå.
Íåâåðîÿòíûé óñïåõ Visual Basic îáóñëîâëåí åãî ïðîñòîòîé — ÷òîáû íà÷àòü èì
ïîëüçîâàòüñÿ, íå íóæíî äîëãî ó÷èòüñÿ. Êðîìå òîãî, âðÿä ëè íàéäåòñÿ çàäà÷à, êîòî-
ðóþ ìîæíî ðåàëèçîâàòü ñ ïîìîùüþ êàêîãî-òî ÿçûêà ïðîãðàììèðîâàíèÿ, íî íåëü-
çÿ âûïîëíèòü ñðåäñòâàìè Visual Basic. Ñëåäîâàòåëüíî, åñëè âû íà÷íåòå îñâàèâàòü
ýòîò ÿçûê ïðÿìî ñåé÷àñ, ýòî áóäåò õîðîøèì çàäåëîì íà áóäóùåå.
Ïðåäëàãàåìàÿ âàøåìó âíèìàíèþ êíèãà ïðåäñòàâëÿåò ñîáîé ïîñîáèå äëÿ ñàìî-
ñòîÿòåëüíîãî èçó÷åíèÿ îñíîâ ïðîãðàììèðîâàíèÿ íà Visual Basic .NET. Ïîäà÷à
òåîðåòè÷åñêîãî ìàòåðèàëà çäåñü òåñíî ñî÷åòàåòñÿ ñ ïðàêòè÷åñêèìè óïðàæíåíèÿ-
ìè. Äëÿ ðàáîòû ñ êíèãîé òðåáóåòñÿ ìèíèìàëüíûé íàáîð íàâûêîâ â ïðîãðàììèðî-
âàíèè. Íàëè÷èå áîëüøîãî ÷èñëà ðèñóíêîâ ïîìîæåò âàì êîíòðîëèðîâàòü ïðàâèëü-
íîñòü âûïîëíÿåìûõ äåéñòâèé.
Ñàìîó÷èòåëü ðàçáèò íà 12 òåì, êàæäàÿ èç êîòîðûõ ïðåäñòàâëåíà òðåìÿ çàíÿòèÿ-
ìè.  ðàìêàõ êàæäîé òåìû ñîçäàåòñÿ íîâîå ïðèëîæåíèå. ×òîáû èçáàâèòü ÷èòàòå-
ëÿ îò áîëüøåé ÷àñòè ðóòèííîé ðàáîòû è äàòü åìó âîçìîæíîñòü ñîñðåäîòî÷èòüñÿ
íà èçó÷åíèè êîíêðåòíîãî àñïåêòà ïðîãðàììèðîâàíèÿ, äëÿ êàæäîé òåìû íà ñåðâå-
ðå èçäàòåëüñòâà ïðåäëàãàåòñÿ íåçàâåðøåííîå ïðèëîæåíèå, êîòîðîå äîðàáàòûâàåò-
ñÿ ïî õîäó èçëîæåíèÿ åå ìàòåðèàëà.
 òåìå 1 ÷èòàòåëü îçíàêîìèòñÿ ñ èíòåðôåéñîì ñðåäû Visual Studio. NET è ñîçäàñò
ñâîå ïåðâîå ïðèëîæåíèå. Â òåìå 2 ðàññêàçûâàåòñÿ î ïðîåêòèðîâàíèè îáúåêòíî-
îðèåíòèðîâàííûõ óïðàâëÿåìûõ ñîáûòèÿìè ïðèëîæåíèé. Âû óçíàåòå, èç êàêèõ
ýòàïîâ ñîñòîèò ïðîöåññ ñîçäàíèÿ ïðèëîæåíèÿ, à òàêæå îá îñíîâíûõ ïðàâèëàõ, êî-
òîðûì íóæíî ñëåäîâàòü ïðè ðàçðàáîòêå ãðàôè÷åñêîãî èíòåðôåéñà ïîëüçîâàòåëÿ.
Îïèñàíèþ òèïîâ äàííûõ Visual Basic .NET ïîñâÿùåíà òåìà 3. Ïðîðàáîòàâ åå, âû
íàó÷èòåñü ñîçäàâàòü ïåðåìåííûå è êîíñòàíòû, íàçíà÷àòü èì èìåíà, ïðèñâàèâàòü
çíà÷åíèÿ è îïðåäåëÿòü èõ îáëàñòü âèäèìîñòè.
 òåìå 4 ðàññêàçûâàåòñÿ îá óñëîâíûõ êîíñòðóêöèÿõ, à òàêæå î ïðèîðèòåòå âûïîë-
íåíèÿ àðèôìåòè÷åñêèõ, ëîãè÷åñêèõ è óñëîâíûõ îïåðàòîðîâ. Çäåñü òàêæå ðå÷ü
èäåò î ïðèíöèïàõ ñîñòàâëåíèÿ è èñïîëüçîâàíèÿ ñòðóêòóðíîé ñõåìû àëãîðèòìà.
Âëîæåííûå óñëîâíûå îïåðàòîðû, ïðåäíàçíà÷åííûå äëÿ ôîðìèðîâàíèÿ ñëîæíûõ
óñëîâèé ïðîâåðêè, îïèñàíû â òåìå 5. Â íåé æå ðàññìîòðåíû è íàèáîëåå ðàñïðî-
ñòðàíåííûå îøèáêè, êîòîðûå ìîãóò âîçíèêíóòü ïðè èñïîëüçîâàíèè âëîæåííûõ
óñëîâíûõ îïåðàòîðîâ, à òàêæå ïðåäëîæåíû ïóòè èõ óñòðàíåíèÿ.
- 12. Òàêîìó âàæíîìó ýëåìåíòó ÿçûêà ïðîãðàììèðîâàíèÿ Visual Basic .NET, êàê öèê-
ëû, ïîñâÿùåíà òåìà 6.
 òåìå 7 ðàññêàçûâàåòñÿ î òîì, êàê â Visual Basic ðåàëèçóåòñÿ ìîäóëüíûé ïîäõîä,
êàê ñîçäàþòñÿ è èñïîëüçóþòñÿ ïîäïðîãðàììû è ôóíêöèè. Òåìà 8 ïîñâÿùåíà îá-
ðàáîòêå è àíàëèçó ñòðîêîâûõ äàííûõ — çàäà÷å, êîòîðóþ ÷àñòî ïðèõîäèòñÿ ðåøàòü
ïðîãðàììèñòàì. Ïðèëîæåíèÿ, ðàññìîòðåííûå â òåìàõ 9 è 10, ïîñâÿùåíû ðàáîòå
ñ ôàéëàìè è ðåàëèçàöèè ôóíêöèé ïå÷àòè. Íà çàíÿòèÿõ ïî ýòèì òåìàì ðå÷ü èäåò
îá îðãàíèçàöèè çàïèñè è ÷òåíèÿ èç ôàéëîâ ïîñëåäîâàòåëüíîãî è ïðîèçâîëüíîãî
äîñòóïà.
 ïðèìåðàõ òåìû 11 ïðîäåìîíñòðèðîâàíû ïðèåìû âûïîëíåíèÿ îñíîâíûõ îïåðà-
öèé ñ îäíî- è äâóõìåðíûìè ìàññèâàìè (ïîèñê ýëåìåíòîâ, èõ ñîðòèðîâêà è ò. ä.).
È, íàêîíåö, â òåìå 12 ïîêàçàíî, êàê èç ïðîãðàììû ïîëó÷èòü äîñòóï ê áàçå äàííûõ.
Ïîñêîëüêó âîïðîñû îòëàäêè, òåñòèðîâàíèÿ è îáðàáîòêè îøèáîê ìîæíî îòíåñòè
êî âñåì òåìàì, îíè ðàññìàòðèâàþòñÿ îòäåëüíî, â ïðèëîæåíèè À. Òàê ÷òî ïðè âîç-
íèêíîâåíèè ïðîáëåì îáðàùàéòåñü ê íåìó. À äëÿ òîãî ÷òîáû îáëåã÷èòü âàì ðàáîòó
ñ ïàíåëüþ èíñòðóìåíòîâ êîíñòðóêòîðà ôîðì, ìû ïðèâåëè â ïðèëîæåíèè Á îïèñà-
íèå ïðåäñòàâëåííûõ íà íåé ýëåìåíòîâ óïðàâëåíèÿ ñ óêàçàíèåì ñîîòâåòñòâóþùèõ
èì çíà÷êîâ.
Ñîãëàøåíèÿ, ïðèíÿòûå â êíèãå
Äëÿ òîãî ÷òîáû îáëåã÷èòü âîñïðèÿòèå ìàòåðèàëà, òåêñò çàíÿòèé îðãàíèçîâàí â âè-
äå íóìåðîâàííîé ïîñëåäîâàòåëüíîñòè øàãîâ. Â êíèãå ìíîãî ñïåöèàëüíûõ àáçàöåâ
«ÑÎÂÅÒ» è «ÏÐÈÌÅ×ÀÍÈÅ», íàçíà÷åíèå êîòîðûõ — ñêîíöåíòðèðîâàòü âíè-
ìàíèå ÷èòàòåëÿ íà âàæíîì âîïðîñå.
Íàçâàíèÿ ýëåìåíòîâ èíòåðôåéñà, à òàêæå èìåíà ôàéëîâ è ïàïîê âûäåëåíû ñïåöè-
àëüíûì øðèôòîì. Êëþ÷åâûå ñëîâà Visual Basic, à òàêæå íàçâàíèÿ ôóíêöèé, ïåðå-
ìåííûõ è äðóãèõ ÿçûêîâûõ êîíñòðóêöèé äàíû ìîíîøèðèííûì øðèôòîì.
Îò èçäàòåëüñòâà
Âàøè çàìå÷àíèÿ, ïðåäëîæåíèÿ, âîïðîñû îòïðàâëÿéòå ïî àäðåñó ýëåêòðîííîé ïî÷-
òû comp@piter.com (èçäàòåëüñòâî «Ïèòåð», êîìïüþòåðíàÿ ðåäàêöèÿ).
Ìû áóäåì ðàäû óçíàòü âàøå ìíåíèå!
Êîäû ïðîãðàìì è ãîòîâûå ê èñïîëüçîâàíèþ ïðèëîæåíèÿ, ñîçäàíèå êîòîðûõ îïè-
ñàíî â ýòîé êíèãå, âû ìîæåòå íàéòè ïî àäðåñó http://www.piter.com/download.
Ôàéëû ðàñïðåäåëåíû ïî ïàïêàì, íàçâàíèÿ êîòîðûõ îòâå÷àþò íîìåðàì òåì.
Èíôîðìàöèþ î êíèãàõ èçäàòåëüñòâ «Ïèòåð» è «Èçäàòåëüñêàÿ ãðóïïà BHV» âû
íàéäåòå íà web-ñàéòàõ http://www.piter.com è http://www.bhv.kiev.ua.
14 Ïðåäèñëîâèå
- 13. Ââåäåíèå
Ïðåæäå ÷åì ïðèñòóïàòü ê ðàáîòå â Visual Basic .NET, íåîáõîäèìî èçó÷èòü îñîáåí-
íîñòè Windows-ïðèëîæåíèé è îñâîèòü êëþ÷åâûå ïðèíöèïû, ëåæàøèå â îñíîâå
îáúåêòíî-îðèåíòèðîâàííîãî ïðîãðàììèðîâàíèÿ (ÎÎÏ).
Windows — ñèñòåìà, îðèåíòèðîâàííàÿ íà èñïîëüçîâàíèå ñîáûòèé. Ýòî çíà÷èò,
÷òî êàæäîå äåéñòâèå â ñèñòåìå âûçûâàåò ñîáûòèå, êîòîðîå â âèäå ñîîáùåíèÿ ïå-
ðåäàåòñÿ â ïðèëîæåíèå. Ïðèëîæåíèå àíàëèçèðóåò åãî è, â ñâîþ î÷åðåäü, âûïîë-
íÿåò ñîîòâåòñòâóþùèå äåéñòâèÿ.
Ðàíåå ðàçðàáîòêà Windows-ïðèëîæåíèé áûëà ñîïðÿæåíà ñ îãðîìíûìè òðóäíî-
ñòÿìè, ïîñêîëüêó òðåáîâàëîñü ïèñàòü áîëüøèå îáúåìû êîäà, ñîçäàþùåãî êíîïêè,
ìåíþ, ñïèñêè, ïîëîñû ïðîêðóòêè è äðóãèå ýëåìåíòû èíòåðôåéñà. Êðîìå òîãî,
ïðîãðàììèñò äîëæåí áûë ïîëíîñòüþ, «ñ íóëÿ», ïèñàòü êîä, îáðàáàòûâàþùèé äåé-
ñòâèÿ ïîëüçîâàòåëÿ (íàæàòèå êíîïîê, âûáîð êîìàíä ìåíþ, ïåðåìåùåíèå ïî äîêó-
ìåíòó ñ ïîìîùüþ ïîëîñ ïðîêðóòêè è ò. ï.).
Ñèòóàöèÿ çíà÷èòåëüíî óëó÷øèëàñü ñ ïîÿâëåíèåì îáúåêòíî-îðèåíòèðîâàííûõ
ÿçûêîâ, îáëåã÷àþùèõ ñîçäàíèå óïðàâëÿåìûõ ñîáûòèÿìè ïðèëîæåíèé, ê ÷èñëó
êîòîðûõ îòíîñÿòñÿ è ïðèëîæåíèÿ äëÿ Windows. Ïðîãðàììèñòû ïîëó÷èëè âîç-
ìîæíîñòü ìàíèïóëèðîâàòü îáúåêòàìè ïîëüçîâàòåëüñêîãî èíòåðôåéñà (ìåíþ, êî-
ìàíäàìè, êíîïêàìè è äð.), îáðàáàòûâàòü ñîáûòèÿ, êîòîðûå â íåì ïðîèñõîäÿò
(ùåë÷êè êíîïêîé ìûøè, íàæàòèå êëàâèø è ò. ï.).  ðåçóëüòàòå äåéñòâèå, êîòîðîå
ðàíåå òðåáîâàëî ñîçäàíèÿ ïðîãðàììû èç íåñêîëüêèõ ñòðàíèö, òåïåðü ïðîãðàììè-
ðóåòñÿ íåñêîëüêèìè ñòðîêàìè êîäà.
Ãîâîðÿò, ÷òî èçó÷èòü îáúåêòíî-îðèåíòèðîâàííûé ÿçûê äîñòàòî÷íî ñëîæíî. Êî-
íå÷íî, äëÿ ñîçäàíèÿ îáúåêòíî-îðèåíòèðîâàííûõ ïðîãðàìì òðåáóþòñÿ íåêîòîðûå
ñïåöèàëüíûå íàâûêè. Îäíàêî â ñàìîé òåîðèè ÎÎÏ èìååòñÿ ðÿä êîíöåïöèé è ïî-
íÿòèé, êîòîðûå çíàêîìû íàì ïî ïîâñåäíåâíîé æèçíè.
Îáúåêò — ýòî íå÷òî òàêîå, ÷òî ìû ìîæåì óâèäåòü, ïîòðîãàòü ðóêàìè è èñïîëüçî-
âàòü.  âèäå îáúåêòîâ ìîãóò áûòü îïèñàíû ðàçëè÷íûå æèâûå è íåæèâûå ïðåäìåòû
ðåàëüíîãî ìèðà, òàêèå êàê àâòîìîáèëü, êðåäèòíàÿ êàðòî÷êà èëè, ñêàæåì, ñîòðóäíèê
ïðåäïðèÿòèÿ. Îáúåêòû, êîòîðûå ïðèìåíÿþòñÿ â îáúåêòíî-îðèåíòèðîâàííûõ ïðî-
ãðàììàõ, ìîãóò ïðåäñòàâëÿòü êíîïêè, ìåíþ è äðóãèå ýëåìåíòû èíòåðôåéñà, ôàé-
ëû, íàáîðû äàííûõ.
Ëþáîé îáúåêò îáëàäàåò ñâîéñòâàìè è, êàê ãîâîðÿò â ÎÎÏ, èìååò ìåòîäû, îïðåäå-
ëÿþùèå åãî ïîâåäåíèå. Ñâîéñòâà — ýòî õàðàêòåðèñòèêè îáúåêòà. Íàïðèìåð, åñëè
âû ãîâîðèòå, ÷òî âàì íðàâèòñÿ àâòîìîáèëü BMW 720, òî îïèñûâàåòå îáúåêò (àâ-
òîìîáèëü), óêàçûâàÿ íåêîòîðûå åãî õàðàêòåðèñòèêè, â äàííîì ñëó÷àå ìàðêó è ìî-
äåëü. Êîíå÷íî, àâòîìîáèëü èìååò ìàññó äðóãèõ õàðàêòåðèñòèê: öâåò è òèï êóçîâà,
òèï äâèãàòåëÿ è êîðîáêè ïåðåäà÷, êîëè÷åñòâî äâåðåé è ò. ä., êîòîðûå âû ìîæåòå,
â çàâèñèìîñòè îò ïîñòàâëåííîé çàäà÷è, èçìåíÿòü èëè àíàëèçèðîâàòü. Ìåòîäû
îáúåêòà — ýòî äåéñòâèÿ, êîòîðûå îí ìîæåò ïðîèçâîäèòü. Òàê, àâòîìîáèëü ìîæåò
äâèãàòüñÿ, ÷àñû — ïîêàçûâàòü âðåìÿ è äàòó.
- 14. Â òåîðèè ÎÎÏ ñóùåñòâóåò òàêæå ïîíÿòèå êëàññà. Êëàññ ïðåäñòàâëÿåò ñîáîé øàá-
ëîí, ïî êîòîðîìó ñòðîèòñÿ îáúåêò. Êàæäûé îáúåêò, ïðèìåíÿåìûé â ÎÎÏ, îáðàçî-
âàí îò êàêîãî-ëèáî êëàññà. Êëàññ ñîäåðæèò, èëè, êàê ãîâîðÿò, èíêàïñóëèðóåò, âñå
ñâîéñòâà è ìåòîäû îáðàçîâàííîãî îò íåãî îáúåêòà. Íàïðèìåð, êëàññ äëÿ àâòîìî-
áèëÿ èíêàïñóëèðóåò âñå õàðàêòåðèñòèêè è ìåòîäû àâòîìîáèëåé, à êëàññ äëÿ ÷à-
ñîâ — âñå õàðàêòåðèñòèêè è ìåòîäû ÷àñîâ. Îáúåêò, îáðàçîâàííûé îò äàííîãî
êëàññà, íàçûâàþò ýêçåìïëÿðîì êëàññà. Âû äîëæíû ïîíèìàòü, ÷òî ñàì êëàññ íå ÿâ-
ëÿåòñÿ îáúåêòîì. Îáúåêòîì ÿâëÿåòñÿ ýêçåìïëÿð êëàññà.
 ëèòåðàòóðå, ïîñâÿùåííîé ÎÎÏ, ÷àñòî âñòðå÷àåòñÿ òåðìèí àáñòðàêöèÿ.  äàí-
íîì êîíòåêñòå îí îçíà÷àåò ñîêðûòèå âíóòðåííèõ îñîáåííîñòåé îáúåêòà îò ïîëüçî-
âàòåëÿ. Ýòî ïîçâîëÿåò çàùèòèòü îáúåêò îò íåæåëàòåëüíûõ èçìåíåíèé. Ïðè ýòîì
ñâîéñòâà è ìåòîäû îáúåêòà îòêðûòû äëÿ äîñòóïà. Íàïðèìåð, âû ìîæåòå çàâåñòè
àâòîìîáèëü èëè óñòàíîâèòü âðåìÿ íà ÷àñàõ. Òàêèì îáðàçîì, çàäà÷à àáñòðàêöèè —
ïðåäîñòàâèòü äîñòóï ê òåì ñâîéñòâàì è ìåòîäàì îáúåêòà, êîòîðûå íóæíû ïîëüçî-
âàòåëþ, è ñêðûòü îò íåãî äåòàëè âíóòðåííåãî óñòðîéñòâà îáúåêòà.
È åùå îá îäíîì ïîíÿòèè, ñâÿçàííîì ñ ÎÎÏ. Íàñëåäîâàíèå — ýòî âîçìîæíîñòü
ñîçäàâàòü îäèí êëàññ íà îñíîâå äðóãîãî. Íîâûé êëàññ, êîòîðûé íàçûâàþò ïîðîæ-
äåííûì, íàñëåäóåò ñâîéñòâà è ìåòîäû èñõîäíîãî êëàññà, íàçûâàåìîãî áàçîâûì.
Íàïðèìåð, åñëè ãîâîðèòü î êëàññå, îïèñûâàþùåì îïðåäåëåííóþ ìîäåëü ÷àñîâ, òî
ïîðîæäåííûé îò íåãî êëàññ ìîæåò ïðåäñòàâëÿòü ìîäåëü, îáëàäàþùóþ òàêèìè æå
õàðàêòåðèñòèêàìè, íî äîïîëíèòåëüíî ñíàáæåííóþ ìåõàíèçìîì áóäèëüíèêà. Ïîä-
äåðæêà íàñëåäîâàíèÿ èçáàâëÿåò íàñ îò íåîáõîäèìîñòè ïðè ñîçäàíèè êëàññîâ äëÿ
ïîõîæèõ îáúåêòîâ âêëþ÷àòü â êàæäûé èç íèõ âñå ñâîéñòâà è ìåòîäû, îïèñûâàþ-
ùèå îáúåêò. Ìîæíî ñîçäàòü áàçîâûé êëàññ, êîòîðûé èíêàïñóëèðóåò îáùèå äëÿ
ãðóïïû îáúåêòîâ ñâîéñòâà è ìåòîäû, à çàòåì îáðàçîâàòü îò íåãî íåîáõîäèìîå êî-
ëè÷åñòâî ïîðîæäåííûõ êëàññîâ.
Ïðè èçó÷åíèè ïðèíöèïîâ ÎÎÏ âû íàâåðíÿêà óñëûøèòå è òåðìèí ïîëèìîðôèçì.
Ðå÷ü èäåò î ñïîñîáíîñòè îäíîé è òîé æå èíñòðóêöèè âûïîëíÿòüñÿ ïî-ðàçíîìó â
çàâèñèìîñòè îò òèïà îáúåêòà. Íàïðèìåð, äåéñòâèå «îòêðûòü» ìîæåò ïðèìåíÿòüñÿ
ïî îòíîøåíèþ ê äâåðè, îêíó è ãëàçàì, à äåéñòâèå «óñòàíîâèòü» — ïî îòíîøåíèþ
êî âðåìåíè, äàòå, áóäèëüíèêó èëè, ñêàæåì, ëàìïî÷êå. Õîòÿ â êàæäîì èç ýòèõ ñëó-
÷àåâ èíñòðóêöèè, çàäàííûå ãëàãîëàìè «îòêðûòü» è «óñòàíîâèòü», îçíà÷àþò ðàç-
íûå äåéñòâèÿ, óêàçàíèå èíñòðóêöèè âìåñòå ñ íàçâàíèåì îáúåêòà ïîçâîëÿåò íàì
ïîíÿòü, î êàêîì äåéñòâèè èäåò ðå÷ü.  ÎÎÏ ïîëèìîðôèçì ðåàëèçóåòñÿ ïóòåì ïå-
ðåãðóçêè ìåòîäîâ. Äåëàåòñÿ ýòî ñëåäóþùèì îáðàçîì. Âû ñîçäàåòå íåñêîëüêî ðåà-
ëèçàöèé ìåòîäà ñ ðàçíûìè íàáîðàìè àðãóìåíòîâ. Ïðè ýòîì âñå ýòè ðåàëèçàöèè
(ïåðåãðóæåííûå ìåòîäû) èìåþò îäèíàêîâûå èìåíà. Â ïðîöåññå âûçîâà ìåòîäà
ñðåäà Visual Basic .NET ïî êîëè÷åñòâó è òèïó ïåðåäàâàåìûõ åìó àðãóìåíòîâ ñàìà
îïðåäåëÿåò, êàêîé èç ìåòîäîâ âûçâàòü.
Êàê âèäèòå, âñå äîñòàòî÷íî ïðîñòî. È ìû íå õîòèì áîëåå óòîìëÿòü âàñ òåîðèåé,
à ïðåäëàãàåì ïåðåéòè ê ïðàêòè÷åñêèì çàíÿòèÿì.
16 Ââåäåíèå
- 15. Ò Å Ì À 1
Çíàêîìñòâî
ñ Visual Basic .NET
Ñîçäàíèå çàñòàâêè Copyright
Èòàê, âû ïîñòàâèëè ïåðåä ñîáîé çàäà÷ó îñâîèòü ïðèíöèïû
ðàçðàáîòêè ïðèëîæåíèé ñ ïîìîùüþ Visual Basic .NET —
íîâåéøåé âåðñèè ÿçûêà ïðîãðàììèðîâàíèÿ Visual Basic
êîìïàíèè Microsoft. Äàâàéòå ïðåäñòàâèì, ÷òî âàñ ïðèíÿ-
ëè ïðîãðàììèñòîì-ñòàæåðîì â íåáîëüøóþ ôèðìó, ñïå-
öèàëèçèðóþùóþñÿ íà âûïóñêå è òåñòèðîâàíèè ïðîãðàì-
ìíûõ ïðîäóêòîâ. Íà÷àëüíèê ñðàçó æå äàåò âàì çàäàíèå:
ñîçäàòü çàñòàâêó Copyright äëÿ âñåõ ïðèëîæåíèé êîìïà-
íèè. Çàñòàâêà — ýòî ïåðâîå èçîáðàæåíèå, êîòîðîå ïîÿâ-
ëÿåòñÿ ïîñëå çàïóñêà ïðîãðàììû è èñïîëüçóåòñÿ ñ öåëüþ
óäåðæèâàòü âíèìàíèå ïîëüçîâàòåëÿ âî âðåìÿ çàãðóçêè
ïðèëîæåíèÿ â ïàìÿòü. Çàñòàâêà Copyright äîëæíà áûòü
ñíàáæåíà ëîãîòèïîì êîìïàíèè, îòîáðàæàòü èíôîðìà-
öèþ îá àâòîðå ïðèëîæåíèÿ è âðåìåíè ñîçäàíèÿ ïðî-
ãðàììû. Õîòÿ ýòî çàäàíèå íå î÷åíü ñëîæíîå, îíî ïîñëó-
æèò ïðåêðàñíîé ïðàêòèêîé ïðè èçó÷åíèè îñíîâ Visual
Basic .NET. Ïðè÷åì äëÿ åãî âûïîëíåíèÿ âàì íå ïîòðåáó-
þòñÿ ñïåöèàëüíûå çíàíèÿ î ïðîåêòèðîâàíèè è ïðîãðàì-
ìèðîâàíèè, íåîáõîäèìûå äëÿ ðàçðàáîòêè áîëüøèõ ïðè-
ëîæåíèé.
- 16. Çàíÿòèå 1
Ñîçäàíèå Windows-ïðèëîæåíèé
Íà ýòîì çàíÿòèè ðàññìîòðåíû ñëåäóþùèå âîïðîñû:
n çàïóñê è íàñòðîéêà èíòåãðèðîâàííîé ñðåäû ðàçðàáîòêè Visual Studio .NET;
n ñîçäàíèå ðåøåíèÿ;
n äîáàâëåíèå ê ðåøåíèþ ïðîåêòà Visual Basic .NET;
n íàñòðîéêà ñâîéñòâ îáúåêòà;
n ñîõðàíåíèå ðåøåíèÿ è âûõîä èç Visual Studio .NET.
Çàïóñê è íàñòðîéêà Visual Studio .NET
Äëÿ òîãî ÷òîáû ïðèñòóïèòü ê ðàáîòå, íåîáõîäèìî çàïóñòèòü Visual Studio .NET.
Ýòî íîâåéøàÿ èíòåãðèðîâàííàÿ ñðåäà ðàçðàáîòêè (Integrated Development Envi-
ronment, IDE), âêëþ÷àþùàÿ â ñåáÿ ÿçûêè ïðîãðàììèðîâàíèÿ Visual Basic, C++
è C#, êîòîðûå ìîæíî ïðèìåíÿòü äëÿ ñîçäàíèÿ Windows- è web-ïðèëîæåíèé.
Windows-ïðèëîæåíèÿ (ê íèì îòíîñÿòñÿ ãðàôè÷åñêèå ïðîãðàììû, ñèñòåìû ââîäà
äàííûõ, èãðû è ò. ä.) ñíàáæåíû èíòåðôåéñîì ïîëüçîâàòåëÿ, õàðàêòåðíûì äëÿ
Windows, è çàïóñêàþòñÿ ñ ðàáî÷åãî ñòîëà êîìïüþòåðà. Web-ïðèëîæåíèÿ (ê êîòî-
ðûì îòíîñÿòñÿ ïðîãðàììû, ïðåäíàçíà÷åííûå äëÿ ðàáîòû â Èíòåðíåòå è èíòðàíå-
òå) èìåþò èíòåðôåéñ, ñâîéñòâåííûé Web, çàïóñêàþòñÿ ñ ñåðâåðà, è äîñòóï ê íèì
îñóùåñòâëÿåòñÿ ïðè ïîìîùè áðàóçåðà.
Äëÿ çàïóñêà èíòåãðèðîâàííîé ñðåäû ðàçðàáîòêè Visual Studio .NET âûïîëíèòå
ñëåäóþùèå äåéñòâèÿ.
1. Îòêðîéòå ñòàðòîâîå ìåíþ Windows, ùåëêíóâ íà êíîïêå Start (Ïóñê) ïàíåëè
çàäà÷. Âûáåðèòå â íåì ñíà÷àëà ïóíêò Programs (Ïðîãðàììû), à ïîòîì — ïóíêò
Microsoft Visual Studio .NET. Â îòêðûâøåìñÿ ïîäìåíþ àêòèâèçèðóéòå îäíîèìåí-
íóþ êîìàíäó. Ïîñëå ýòîãî ïîÿâèòñÿ çàñòàâêà ñðåäû Microsoft Visual Stu-
dio .NET, à çàòåì îòêðîåòñÿ îêíî Microsoft Development Environment. Ïðè íåîáõî-
äèìîñòè ðàçâåðíèòå ýòî îêíî âî âåñü ýêðàí.
2. Ïîñëå çàïóñêà ïðîãðàììû íà ýêðàíå ïîÿâèòñÿ îêíî Start Page (Íà÷àëüíàÿ ñòðà-
íèöà), â ëåâîé ÷àñòè êîòîðîãî áóäóò ðàñïîëîæåíû ÿðëûêè äëÿ îòêðûòèÿ ïà-
íåëåé. Ùåëêíèòå íà ÿðëûêå My Profile (Ìîé ïðîôèëü), è â îêíå îòîáðàçèòñÿ
îäíîèìåííàÿ ïàíåëü (ðèñ. 1.1).
ÑÎÂÅÒ
Åñëè ïîñëå çàïóñêà ïðîãðàììû ñòàðòîâîå îêíî íå îòîáðàæàåòñÿ, àêòèâèçèðóéòå êîìàíäó
Help4Show Start Page.
- 17. Èñïîëüçóÿ ïàíåëü My Profile, â èíòåãðèðîâàííîé ñðåäå ðàçðàáîòêè ìîæíî íàñòðàè-
âàòü ðàçëè÷íûå ïàðàìåòðû ïðîãðàìì, òàêèå êàê Keyboard Sheme (Ñõåìà êëàâèàòó-
ðû), Windows Layout (Ðàçìåòêà îêíà) è Help Filter (Ôèëüòð ñïðàâêè). Íàáîð ïðè-
îðèòåòíûõ óñòàíîâîê íàçûâàåòñÿ ïðîôèëåì. Ñðåäà Visual Studio .NET ïðåäîñòàâ-
ëÿåò ìíîæåñòâî çàðàíåå îïðåäåëåííûõ ïðîôèëåé, îñíîâíûì èç êîòîðûõ ÿâëÿåòñÿ
Visual Studio Developer. Ïðè ïîäãîòîâêå ìàòåðèàëîâ è ðèñóíêîâ äàííîé êíèãè èñ-
ïîëüçîâàëàñü èìåííî ýòà êîíôèãóðàöèÿ IDE.
Ðèñ. 1.1. Îêíî Microsoft Development Environment
3. Åñëè ïî óìîë÷àíèþ óñòàíîâëåí èíîé ïðîôèëü, ùåëêíèòå íà ðàñêðûâàþùåì-
ñÿ ñïèñêå Profile (Ïðîôèëü) è âûáåðèòå â íåì ýëåìåíò Visual Studio Developer.
4. Àêòèâèçèðóéòå êîìàíäó Tools4Options (Ñåðâèñ4Ïàðàìåòðû), ïîñëå ÷åãî íà
ýêðàíå îòîáðàçèòñÿ äèàëîãîâîå îêíî Options (Ïàðàìåòðû) (ðèñ. 1.2), â êîòîðîì
ìîæíî íàñòðîèòü ïðàêòè÷åñêè âñå ïàðàìåòðû ñðåäû ðàçðàáîòêè.  ïðàâîé
÷àñòè îêíà ùåëêíèòå íà ïàïêå Environment (Êîíôèãóðàöèÿ) è, ïîñëå òîãî êàê
îíà îòêðîåòñÿ, íàæìèòå êíîïêó General (Îáùèå).
5. Åñëè íåîáõîäèìî, óñòàíîâèòå â îêíå Options ôëàæêè Close button affects active
tab only (Êíîïêà çàêðûòèÿ îêíà äåéñòâóåò òîëüêî íà àêòèâíóþ âêëàäêó) è Auto
Hide button affects active tab only (Êíîïêà àâòîìàòè÷åñêîãî ñâîðà÷èâàíèÿ äåéñò-
âóåò òîëüêî íà àêòèâíóþ âêëàäêó).
6. Ùåëêíèòå íà êíîïêå ÎÊ, ïîñëå ÷åãî äèàëîãîâîå îêíî Options çàêðîåòñÿ.
ÏÐÈÌÅ×ÀÍÈÅ
Äëÿ òîãî ÷òîáû âåðíóòüñÿ ê ðàçìåòêå îêíà, êîòîðàÿ áûëà ïðåäëîæåíà âî âðåìÿ ïåðâîãî çà-
ïóñêà èíòåãðèðîâàííîé ñðåäû ðàçðàáîòêè Visual Studio .NET, ìîæíî âîñïîëüçîâàòüñÿ êíîï-
êîé Reset Window Layout, íàõîäÿùåéñÿ â îêíå Options.
Çàíÿòèå 1. Ñîçäàíèå Windows-ïðèëîæåíèé 19
- 18. Ðèñ. 1.2. Äèàëîãîâîå îêíî Options
Îêíî Start Page, êðîìå ïàíåëè My Profile, ñîäåðæèò åùå âîñåìü ïàíåëåé, àêòèâèçà-
öèÿ ëþáîé èç êîòîðûõ ïðèâîäèò ê îòîáðàæåíèþ â ñòàðòîâîì îêíå ñîîòâåòñòâóþ-
ùåé åé èíôîðìàöèè. Íàçíà÷åíèå âñåõ ïàíåëåé îïèñàíî â òàáë. 1.1.
Òàáëèöà 1.1. Ïàíåëè îêíà Start Page
Ïàíåëü Íàçíà÷åíèå
Get Started Ñîçäàíèå íîâûõ è îòêðûòèå ñóùåñòâóþùèõ ïðîåêòîâ
What`s New Ïðåäîñòàâëåíèå äîñòóïà ê èíôîðìàöèè íà web-óçëå êîìïàíèè Microsoft
î íîâûõ ñðåäñòâàõ ñðåäû Visual Studio .NET è çàãðóçêà îáíîâëåííûõ âåðñèé
ïðîãðàìì IDE Visual Studio
Online Community Ñâÿçü ñ ðàçðàáîò÷èêàìè â èíòåðàêòèâíîì ðåæèìå
Headlines Ïðîñìîòð ññûëîê â ïîèñêàõ ïîñëåäíèõ íîâîñòåé èç áèáëèîòåêè MSDN
Online Library íà web-óçëå www.msdn.microsoft.com. Ýòî ôàêòè÷åñêè
íàèáîëüøèé èíôîðìàöèîííûé óçåë â íàçâàííîé îáëàñòè, ãäå ðàçìåùåíû
îôèöèàëüíàÿ äîêóìåíòàöèÿ, ó÷åáíûå ïîñîáèÿ è web-ñåìèíàðû
Search Online Ïîèñê â áèáëèîòåêå MSDN Online Library
Downloads Ïðåäîñòàâëåíèå äîñòóïà ê ïîñëåäíèì îáíîâëåíèÿì ïðîäóêòà è îáðàçöàì
ïðîãðàìì
XML Web Services Ïîèñê ãîòîâûõ web-ñëóæá äëÿ âêëþ÷åíèÿ â ïðèëîæåíèå
è ïðåäîñòàâëåíèå âîçìîæíîñòè ïóáëèêîâàòü ñâîè
Web Hosting Ïëàòíîå ðàçìåùåíèå web-ïðèëîæåíèé íà ñåðâåðàõ, ïðåäîñòàâëÿåìûõ
èíòåðíåò-ïðîâàéäåðàìè
My Profile Íàñòðîéêà ïàðàìåòðîâ ñðåäû IDE
Ïðåæäå ÷åì ïðèñòóïèòü ê ñîçäàíèþ ïðèëîæåíèÿ, ìû ðàññìîòðèì âîçìîæíîñòè,
êîòîðûå ïðåäîñòàâëÿåò â íàøå ðàñïîðÿæåíèå ïàíåëü Get Started.
20 Òåìà 1. Çíàêîìñòâî ñ Visual Basic .NET
- 19. 1. Ùåëêíèòå íà ÿðëûêå Get Started â îêíå Start Page, ñ òåì ÷òîáû îòêðûòü îäíî-
èìåííóþ ïàíåëü (ðèñ. 1.3). Åñëè â ñðåäå Visual Studio .NET óæå ðàáîòàëè, ïà-
íåëü áóäåò ñîäåðæàòü ñïèñîê âûçâàííûõ ðàíåå ðåøåíèé.
Ðèñ. 1.3. Ïàíåëü Get Started â îêíå Start Page
Êðîìå ñòàðòîâîãî îêíà èíòåãðèðîâàííàÿ ñðåäà ðàçðàáîòêè Visual Studio .NET ñî-
äåðæèò åùå ïÿòü îêîí (íà ðèñ. 1.3 íåêîòîðûå èç íèõ ïðåäñòàâëåíû ÿðëûêàìè).
Íàçíà÷åíèå êàæäîãî îêíà êðàòêî îïèñàíî â òàáë. 1.2.
Òàáëèöà 1.2. Îïèñàíèå îêîí, âêëþ÷åííûõ â IDE
Îêíî Îïèñàíèå
Class View Îòîáðàæàåò êëàññû, ìåòîäû è ñâîéñòâà, âêëþ÷åííûå â òåêóùåå ðåøåíèå
Dynamic Help Ñîäåðæèò ññûëêè íà êîíòåêñòíî-çàâèñèìóþ ñïðàâêó
Server Explorer Äåìîíñòðèðóåò ðåñóðñû ñåðâåðîâ, ê êîòîðûì âîçìîæåí äîñòóï ïî ñåòè
ñ äàííîãî êîìïüþòåðà
Solution Explorer Îòîáðàæàåò èìåíà ïðîåêòîâ è ôàéëîâ, âêëþ÷åííûõ â òåêóùåå ðåøåíèå
Start Page Ïðåäñòàâëÿåò ñîáîé ñòàðòîâóþ ñòðàíèöó
Toolbox Îáåñïå÷èâàåò äîñòóï ê ýëåìåíòàì óïðàâëåíèÿ, êîòîðûå ìîæíî
èñïîëüçîâàòü ïðè ñîçäàíèè ïðîåêòà
Äàëåå íà ýòîì çàíÿòèè âû íàó÷èòåñü ðàáîòàòü ñ îêíàìè Solution Explorer è Dynamic
Help, îá îêíå Toolbox ðå÷ü ïîéäåò íà ñëåäóþùåì çàíÿòèè. À âîçìîæíîñòè, ïðåäîñ-
òàâëÿåìûå îêíàìè Server Explorer è Class View, â ýòîé êíèãå íå ðàññìàòðèâàþòñÿ.
Çàíÿòèå 1. Ñîçäàíèå Windows-ïðèëîæåíèé 21
- 20. Íàïîìíèì, ÷òî ñåé÷àñ íàøà çàäà÷à çàêëþ÷àåòñÿ â ðàçðàáîòêå ïðîñòîãî ïðèëîæå-
íèÿ — çàñòàâêè Copyright.
Ñîçäàíèå ðåøåíèÿ äëÿ çàñòàâêè Copyright
Ïðèñòóïàÿ ê ðàçðàáîòêå ïðèëîæåíèÿ, íåîáõîäèìî ñíà÷àëà ñîçäàòü ïóñòîå ðåøå-
íèå Visual Studio .NET, à çàòåì äîáàâèòü â íåãî îäèí èëè íåñêîëüêî ïðîåêòîâ. Ðå-
øåíèå — ýòî êîíòåéíåð, â êîòîðîì õðàíÿòñÿ ïðîåêòû è ôàéëû âñåãî ïðèëîæåíèÿ.
Ïðîåêò — ýòî òàêæå êîíòåéíåð, íî â íåì ðàçìåùàþòñÿ ôàéëû, îòíîñÿùèåñÿ ê îï-
ðåäåëåííîé ÷àñòè ïðèëîæåíèÿ.
×òîáû âàì áûëî ïîíÿòíî, ïðîâåäåì ñëåäóþùóþ àíàëîãèþ. Äîïóñòèì, ÷òî ðåøå-
íèå — ýòî ñåêöèÿ â áëîêå êàðòîòåêè. Òîãäà ïðîåêò ïðåäñòàâëÿåò ñîáîé ïàïêó, êî-
òîðàÿ ïîìåùåíà â òàêóþ ñåêöèþ, à ôàéë, â ñâîþ î÷åðåäü, ñîîòâåòñòâóåò äîêóìåí-
òó, ëåæàùåìó â ïàïêå.  ñåêöèè ìîæåò áûòü ðàñïîëîæåíî íåñêîëüêî ïàïîê, òî÷íî
òàê æå ðåøåíèå ìîæåò ñîäåðæàòü íåñêîëüêî ïðîåêòîâ. Êðîìå òîãî, äîïóñòèìî,
÷òîáû â ïàïêå íàõîäèëîñü áîëüøîå êîëè÷åñòâî äîêóìåíòîâ; àíàëîãè÷íûì îáðà-
çîì, â ïðîåêòå ìîæåò õðàíèòüñÿ ìíîæåñòâî ôàéëîâ.
Ñîçäàòü ïóñòîå ðåøåíèå Visual Studio .NET ìîæíî ïóòåì àêòèâèçàöèè êîìàíäû
File4New4Blank Solution (Ôàéë4Íîâûé4Ïóñòîå ðåøåíèå) èëè âûáîðà íà ñòàí-
äàðòíîé ïàíåëè èíñòðóìåíòîâ êíîïêè New Blank Solution (Íîâîå ïóñòîå ðåøåíèå).
Åñëè ýòà êíîïêà íå îòîáðàæàåòñÿ, îòêðîéòå ñïèñîê New Project (Ñîçäàòü ïðîåêò),
ðàñïîëîæåííûé íà ñòàíäàðòíîé ïàíåëè èíñòðóìåíòîâ ñëåâà, è âûáåðèòå â íåì
ýëåìåíò New Blank Solution. Ëþáîå èõ ýòèõ äåéñòâèé ïðèâåäåò ê ïîÿâëåíèþ íà ýê-
ðàíå äèàëîãîâîãî îêíà New Project (Íîâûé ïðîåêò), êîòîðûå âû âèäèòå íà ðèñ. 1.4.
Ïåðåéäåì ê ïðàêòè÷åñêîé ðåàëèçàöèè çàäà÷è. Äëÿ ýòîãî âû äîëæíû âûïîëíèòü
ñëåäóþùèå äåéñòâèÿ.
1. Ëþáûì èç ïåðå÷èñëåííûõ âûøå ñïîñîáîâ âûçîâèòå äèàëîãîâîå îêíî New
Project. Ïîñëå òîãî êàê îíî îòîáðàçèòñÿ íà ýêðàíå, â ñïèñêå Project Types (Òèï
ïðîåêòà) ýòîãî îêíà áóäåò âûäåëåí ýëåìåíò Visual Studio Solutions, à â ñïèñêå
Templates (Øàáëîíû) — øàáëîí Blank Solution. Ñîîáùåíèå, íàõîäÿùååñÿ ïîä
ñïèñêîì Project Types, óêàçûâàåò, ÷òî äàííûé øàáëîí ñîçäàåò ïóñòîå ðåøåíèå,
íå ñîäåðæàùåå ïðîåêòîâ.
Øàáëîíîì íàçûâàþò îáðàçåö, êîòîðûé èñïîëüçóåòñÿ äëÿ ñîçäàíèÿ ðåøåíèé
è ïðîåêòîâ â ñðåäå Visual Studio .NET. Êàæäûé øàáëîí, âêëþ÷åííûé â ñïèñîê
Templates, ñîäåðæèò íàáîð ñòàíäàðòíûõ ïàïîê è ôàéëîâ, ñîîòâåòñòâóþùèõ ðå-
øåíèþ èëè ïðîåêòó. Íàïðèìåð, â øàáëîí Blank Solution âõîäÿò îäíà ïàïêà
è äâà ôàéëà.
2. Çàìåíèòå èìÿ â ïîëå Name èìåíåì Copyright Solution. Ïðè íåîáõîäèìîñòè âîñ-
ïîëüçóéòåñü êíîïêîé Browse, êîòîðàÿ ðàñïîëàãàåòñÿ ñïðàâà îò òåêñòîâîãî ïî-
ëÿ Location, è âûáåðèòå ïàïêó VBNETTut01 (ðèñ. 1.4).
Îáðàòèòå âíèìàíèå íà òî, ÷òî íàä êíîïêîé Less â äèàëîãîâîì îêíå ïîÿâèòñÿ ñîîá-
ùåíèå, óêàçûâàþùåå, ÷òî ðåøåíèå áóäåò ñîçäàíî â ïàïêå C:VBNETTut01Copyright
Solution. Åñëè êíîïêà Less íå îòîáðàæàåòñÿ, ùåëêíèòå íà êíîïêå More.
22 Òåìà 1. Çíàêîìñòâî ñ Visual Basic .NET
- 21. Ðèñ. 1.4. Äèàëîãîâîå îêíî New Project èñïîëüçóåòñÿ äëÿ ñîçäàíèÿ ïóñòîãî ðåøåíèÿ
3. Çàêðîéòå äèàëîãîâîå îêíî New Project ùåë÷êîì íà êíîïêå ÎÊ. Ïîñëå ýòîãî íà
æåñòêîì äèñêå êîìïüþòåðà áóäåò ñîçäàíî ïóñòîå ðåøåíèå, à â îêíå Solution
Explorer (Ïðîâîäíèê ðåøåíèé), ïîêàçàííîì íà ðèñ. 1.5, ïîÿâÿòñÿ çàäàííîå èìÿ
ðåøåíèÿ, Copyright Solution, è ñâåäåíèÿ î êîëè÷åñòâå ñîäåðæàùèõñÿ â íåì ïðî-
åêòîâ — 0.
Ðèñ. 1.5. Â îêíå Solution Explorer îòîáðàæàåòñÿ
èìÿ ïóñòîãî ðåøåíèÿ
Ïîÿâëåíèå èìåíè ðåøåíèÿ â îêíå Solution Explorer îçíà÷àåò, ÷òî ðåøåíèå îòêðûòî
è â íåãî ìîæíî âíîñèòü èíôîðìàöèþ.
Ïîñëå òîãî êàê ìû ïðèìåíèëè øàáëîí Blank Solution, ñðåäà Visual Studio .NET àâ-
òîìàòè÷åñêè ñîçäàëà íà æåñòêîì äèñêå êîìïüþòåðà îäíó ïàïêó è äâà ôàéëà. Ýòîé
ïàïêå ïî óìîë÷àíèþ ïðèñâàèâàåòñÿ òî æå èìÿ, ÷òî è ðåøåíèþ (â íàøåì ñëó÷àå —
Copyright Solution). Äâà ôàéëà, õðàíÿùèåñÿ â äàííîé ïàïêå, èìåþò òàêèå æå èìåíà,
Çàíÿòèå 1. Ñîçäàíèå Windows-ïðèëîæåíèé 23
- 22. íî ðàçíûå ðàñøèðåíèÿ: .sln (solution — ðåøåíèå) è .suo (solution user options — ïà-
ðàìåòðû ïîëüçîâàòåëÿ ðåøåíèÿ). Â ïåðâîì õðàíÿòñÿ ññûëêè íà ïðîåêòû è ôàéëû,
âêëþ÷åííûå â ðåøåíèå, à âî âòîðîé (ñêðûòûé) çàïèñûâàþòñÿ ïàðàìåòðû, óñòà-
íîâëåííûå äëÿ ðåøåíèÿ.
ÏÐÈÌÅ×ÀÍÈÅ
×òîáû ïðîñìîòðåòü èìåíà ñêðûòûõ ôàéëîâ, çàïóñòèòå Windows Explorer (Ïðîâîäíèê), ùåëê-
íèòå íà ìåíþ Tools (Ñåðâèñ) â ñòðîêå ìåíþ, à çàòåì çàäàéòå êîìàíäó Folder Options (Ñâîéñòâà
ïàïêè). Êîãäà íà ýêðàíå ïîÿâèòñÿ îäíîèìåííîå îêíî, îòêðîéòå âêëàäêó View (Âèä), â ñïèñêå
äîïîëíèòåëüíûõ ïàðàìåòðîâ äëÿ ýëåìåíòà Hidden files and folders (Ñêðûòûå ôàéëû è ïàïêè)
âûáåðèòå ïîëîæåíèå ïåðåêëþ÷àòåëÿ Show hidden files and folders (Ïîêàçûâàòü ñêðûòûå ôàé-
ëû è ïàïêè) è ùåëêíèòå íà êíîïêå ÎÊ.
Èòàê, ïóñòîå ðåøåíèå ñîçäàíî, è òåïåðü ê íåìó ìîæíî äîáàâëÿòü ïðîåêòû. Èõ êî-
ëè÷åñòâî çàâèñèò îò ñëîæíîñòè ðàçðàáàòûâàåìîãî ïðèëîæåíèÿ — ïðîñòûì ïðè-
ëîæåíèÿì òðåáóåòñÿ îäèí ïðîåêò, à ñëîæíûå îáû÷íî âêëþ÷àþò íåñêîëüêî ïðîåê-
òîâ. Ïîñêîëüêó íàøà çàñòàâêà Copyright îòíîñèòñÿ ê ïðîñòûì ïðèëîæåíèÿì,
ïîòðåáóåòñÿ îäèí ïðîåêò, êîòîðûé áóäåò ñîçäàí ñ ïîìîùüþ Visual Basic .NET.
Íîâûé ïðîåêò äîáàâëÿåòñÿ ê òåêóùåìó ðåøåíèþ ïîñðåäñòâîì êîìàíäû File4Add
Project4New Project (Ôàéë4Äîáàâèòü ïðîåêò4Íîâûé ïðîåêò). Íî ìîæíî èñïîëü-
çîâàòü è äðóãèå ñïîñîáû, íàïðèìåð ùåëêíóòü ïðàâîé êíîïêîé ìûøè íà èìåíè ðå-
øåíèÿ â îêíå Solution Explorer èëè îòêðûòü êîíòåêñòíîå ìåíþ è âûçâàòü â íåì êî-
ìàíäó Add4New Project; ìîæíî òàêæå ïðîèçâåñòè ùåë÷îê íà êíîïêå New Project
ïàíåëè Get Started â ñòàðòîâîì îêíå ëèáî íà îäíîèìåííîé êíîïêå ñòàíäàðòíîé ïà-
íåëè èíñòðóìåíòîâ.
Äîáàâüòå íîâûé ïðîåêò Visual Basic .NET ê òåêóùåìó ðåøåíèþ. Äåëàåòñÿ ýòî ñëå-
äóþùèì îáðàçîì.
1. Ùåëêíèòå ïðàâîé êíîïêîé ìûøè íà ñòðîêå Solution 'Copyright Solution' (0 pro-
jects) â îêíå Solution Explorer. Âûáåðèòå â ïîÿâèâøåìñÿ êîíòåêñòíîì ìåíþ êî-
ìàíäó Add4New Project, è íà ýêðàíå îòîáðàçèòñÿ îêíî Add New Project.
2.  ñïèñêå Project Types ïåðå÷èñëåíû ðàçëè÷íûå òèïû ïðîåêòîâ, êîòîðûå ìîæíî
äîáàâëÿòü ê ðåøåíèþ. Âûáåðèòå â ýòîì ñïèñêå ýëåìåíò Visual Basic Projects, åñ-
ëè îí íå âûäåëåí.
3. Ñïèñîê Templates ñîäåðæèò ïåðå÷åíü øàáëîíîâ ïðîåêòîâ, äîñòóïíûõ â Visual
Basic .NET. Âûáåðèòå â ñïèñêå ýëåìåíò Windows Application. Ýòîò øàáëîí ïîä-
õîäèò äëÿ ðåøåíèÿ íàøåé çàäà÷è, ïîñêîëüêó ïðèëîæåíèå ýêðàíà Copyright
äîëæíî áûòü ñíàáæåíî Windows-èíòåðôåéñîì ïîëüçîâàòåëÿ.
4. Â ïîëå Name óêàæèòå èìÿ Copyright Project.
5. Óáåäèòåñü, ÷òî â òåêñòîâîì ïîëå Location óêàçàí ïóòü ê ïàïêå Copyright Solution.
Ïîñëå âûïîëíåíèÿ âñåõ îïèñàííûõ äåéñòâèé äèàëîãîâîå îêíî Add New Project
äîëæíî âûãëÿäåòü òàê, êàê ïîêàçàíî íà ðèñ. 1.6. Îáðàòèòå âíèìàíèå: ïîä ïî-
ëåì Location â îêíå íàõîäèòñÿ ñîîáùåíèå, óêàçûâàþùåå, ÷òî ïðîåêò áóäåò ñîç-
äàí â ïàïêå C:VBNETTut01Copyright SolutionCopyright Project.
Êàê âû óæå çíàåòå, øàáëîí ñîäåðæèò íàáîð ñòàíäàðòíûõ ïàïîê è ôàéëîâ. Ïî-
ñëå ùåë÷êà íà êíîïêå ÎÊ â îêíå Add New Project ïàïêè è ôàéëû, âêëþ÷åííûå
â øàáëîí Windows Application, áóäóò àâòîìàòè÷åñêè ñîçäàíû íà æåñòêîì äèñêå
êîìïüþòåðà.
24 Òåìà 1. Çíàêîìñòâî ñ Visual Basic .NET
- 23. Ðèñ. 1.6. Äèàëîãîâîå îêíî Add New Project
6. Çàêðîéòå îêíî Add New Project, ùåëêíóâ íà êíîïêå ÎÊ. Òåïåðü íîâûé ïðîåêò
Visual Basic .NET Windows Application áóäåò äîáàâëåí ê òåêóùåìó ðåøåíèþ.
Êðîìå òîãî, â îêíå Solution Explorer îòîáðàçèòñÿ èìÿ ïðîåêòà — Copyright Project,
à òàêæå äðóãàÿ îòíîñÿùàÿñÿ ê íåìó èíôîðìàöèÿ (ðèñ. 1.7).
Ðèñ. 1.7. Íîâûé ïðîåêò Visual Basic .NET äîáàâëåí ê ðåøåíèþ
Çàíÿòèå 1. Ñîçäàíèå Windows-ïðèëîæåíèé 25
- 24. Êàê âèäèòå, êðîìå øåñòè îêîí, î êîòîðûõ ìû óæå ãîâîðèëè, â ñðåäå ðàçðàáîòêè
îòîáðàçèëèñü äâà íîâûõ — Designer è Properties. Êîíå÷íî, ñ òàêèì êîëè÷åñòâîì îò-
êðûòûõ îêîí ðàçîáðàòüñÿ íåïðîñòî, îñîáåííî åñëè âû íîâè÷îê. Ðàáîòàòü ñ IDE
áóäåò ïðîùå, åñëè âû çàêðîåòå èëè ñâåðíåòå îêíà, êîòîðûå â äàííûé ìîìåíò íå
èñïîëüçóåòå. Â ñëåäóþùåì ðàçäåëå ìû ðàññêàæåì, êàê óïðàâëÿòü îêíàìè â èíòåã-
ðèðîâàííîé ñðåäå ðàçðàáîòêè.
Óïðàâëåíèå îêíàìè â èíòåãðèðîâàííîé ñðåäå ðàçðàáîòêè
Ñàìûé ïðîñòîé ñïîñîá çàêðûòü îòêðûòîå îêíî â IDE — ùåëêíóòü íà êíîïêå Close
â ñòðîêå çàãîëîâêà îêíà. Íî ýòî ìîæíî ñäåëàòü è äðóãèìè ñïîñîáàìè: ïðîèçâåñòè
ùåë÷îê ïðàâîé êíîïêîé ìûøè íà ñòðîêå çàãîëîâêà îêíà, à çàòåì âûáðàòü â êîí-
òåêñòíîì ìåíþ êîìàíäó Hide (Ñêðûòü) ëèáî âûçâàòü èç ãëàâíîãî ìåíþ êîìàíäó
Window4Hide (Îêíî4Ñêðûòü).
Îòêðûòü îêíà òîæå íå ñîñòàâëÿåò òðóäà — â áîëüøèíñòâå ñëó÷àåâ ñîîòâåòñòâóþ-
ùèå êîìàíäû ìîæíî íàéòè â ìåíþ View (Âèä). Òàê, îêíî Toolbox (Ïàíåëü èíñòðó-
ìåíòîâ) âûçûâàåòñÿ êîìàíäîé View4Toolbox. Îäíàêî ó÷òèòå, ÷òî êîìàíäû, óïðàâ-
ëÿþùèå îòêðûòèåì îêîí Start Page è Dynamic Help, ðàñïîëîæåíû â ìåíþ Help, à íå
â ìåíþ View.
Äëÿ ñîêðûòèÿ îêîí òàêæå ñóùåñòâóåò íåñêîëüêî âîçìîæíîñòåé: ïîñðåäñòâîì ðàñ-
ïîëîæåííîé â ñòðîêå ìåíþ îêíà êíîïêè Auto Hide (Àâòîìàòè÷åñêè ñêðûâàòü),
ùåë÷êîì ïðàâîé êíîïêè ìûøè íà çàãîëîâêå îêíà ñ ïîñëåäóþùèì âûáîðîì êî-
ìàíäû Auto Hide â êîíòåêñòíîì ìåíþ ëèáî ñ ïîìîùüþ êîìàíäû Window4Auto Hide.
Åñëè ïîñëå ýòîãî âû ïåðåìåñòèòå óêàçàòåëü ìûøè çà ïðåäåëû îêíà, îíî áóäåò
ïðåäñòàâëåíî â âèäå ÿðëûêà, ðàñïîëîæåííîãî ó ëåâîãî èëè ïðàâîãî êðàÿ îêíà
IDE. Ïðè ýòîì êíîïêà, íàõîäÿùàÿñÿ â ñòðîêå çàãîëîâêà îêíà, áóäåò çàìåíåíà äðó-
ãîé êíîïêîé, ñâèäåòåëüñòâóþùåé î òîì, ÷òî îêíî ñâåðíóòî. Äëÿ âðåìåííîãî îòî-
áðàæåíèÿ ñâåðíóòîãî îêíà íóæíî ïîìåñòèòü óêàçàòåëü ìûøè íà ÿðëûê. Åñëè æå
òðåáóåòñÿ, ÷òîáû îêíî îòîáðàæàëîñü ïîñòîÿííî, ñëåäóåò ùåëêíóòü íà êíîïêå
â ñòðîêå åãî çàãîëîâêà. ßðëûêè ñâåðíóòûõ îêîí Server Explorer è Toolbox ïðåäñòàâ-
ëåíû íà ðèñ. 1.7.
Äî íà÷àëà âûïîëíåíèÿ ñëåäóþùèõ çàäàíèé âàì ñëåäóåò çàêðûòü îêíà Server Exp-
lorer, Start Page, Class View è Dynamic Help, ïîñêîëüêó äëÿ ñîçäàíèÿ ýêðàíà Copyright
îíè íå ïîíàäîáÿòñÿ. Êðîìå òîãî, âû äîëæíû íàó÷èòüñÿ ñêðûâàòü è îòîáðàæàòü
îêíî Solution Explorer.
1. Ïîìåñòèòå óêàçàòåëü ìûøè íà ÿðëûê Server Explorer, êîòîðûé îáû÷íî ðàñïîëà-
ãàåòñÿ ó ëåâîé ãðàíèöû îêíà IDE. Êîãäà îäíîèìåííîå îêíî îòîáðàçèòñÿ íà ýê-
ðàíå (ïðåæäå ÷åì îíî òàì ïîÿâèòñÿ, ìîæåò ïðîéòè íåñêîëüêî ñåêóíä), ùåëê-
íèòå íà êíîïêå Close â ñòðîêå åãî çàãîëîâêà.
2. Ùåëêíèòå íà ÿðëûêå Start Page, ÷òîáû àêòèâèçèðîâàòü îäíîèìåííîå îêíî,
à çàòåì — íà êíîïêå Close â ñòðîêå çàãîëîâêà ýòîãî îêíà.
3. Ïîâòîðèòå äåéñòâèÿ, óêàçàííûå â ïóíêòå 2, ÷òîáû çàêðûòü îêíî Class View.
Òåïåðü çàêðîåì îêíî Dynamic Help, â êîòîðîì îòîáðàæàþòñÿ ññûëêè íà êîíòåêñò-
íî-çàâèñèìóþ ñïðàâêó è ïîäñêàçêè, êàñàþùèåñÿ òåêóùèõ îïåðàöèé. Êîãäà ýòî
îêíî îòêðûòî, âû èìååòå âîçìîæíîñòü óäîáíîãî äîñòóïà ê ñïðàâî÷íîé ñèñòåìå
26 Òåìà 1. Çíàêîìñòâî ñ Visual Basic .NET
- 25. â IDE. Îäíàêî íåîáõîäèìî ó÷èòûâàòü, ÷òî äëÿ ïîñòîÿííîãî îáíîâëåíèÿ äàííîãî
îêíà òðåáóþòñÿ äîïîëíèòåëüíûå ðåñóðñû, à ýòî ìîæåò ñêàçàòüñÿ íà ïðîèçâîäè-
òåëüíîñòè âàøåãî êîìïüþòåðà.
4. Ùåëêíèòå íà ÿðëûêå Dynamic Help, ÷òîáû àêòèâèçèðîâàòü îäíîèìåííîå îêíî,
à ïîòîì — íà êíîïêå Close â ñòðîêå åãî çàãîëîâêà.
5. Ïðîèçâåäèòå ùåë÷îê íà êíîïêå Auto Hide â ñòðîêå çàãîëîâêà îêíà Solution Explo-
rer, à çàòåì ïåðåìåñòèòå óêàçàòåëü ìûøè çà ïðåäåëû îêíà. Â ðåçóëüòàòå ýòîãî
îêíî áóäåò ìèíèìèçèðîâàíî è ïðèìåò âèä ÿðëûêà, ðàñïîëîæåííîãî íà ïðà-
âîì êðàþ îêíà IDE.
ÑÎÂÅÒ
Åñëè ïîñëå òîãî êàê âû óáåðåòå óêàçàòåëü ìûøè çà ïðåäåëû îêíà Solution Explorer, îíî îñòà-
íåòñÿ íà ýêðàíå, ïîâòîðèòå ùåë÷îê íà ñòðîêå åãî çàãîëîâêà.
Òåïåðü âðåìåííî îòîáðàçèì îêíî Solution Explorer.
6. Ïîìåñòèòå óêàçàòåëü ìûøè íà ÿðëûê Solution Explorer, è îäíîèìåííîå îêíî
ïîÿâèòñÿ íà ýêðàíå.
7. Ïåðåìåñòèòå óêàçàòåëü ìûøè çà ïðåäåëû äàííîãî îêíà. Îêíî Solution Explorer
ìèíèìèçèðóåòñÿ è âíîâü áóäåò ïðåäñòàâëåíî íà ýêðàíå òîëüêî ÿðëûêîì.
×òîáû îêíî Solution Explorer ïîñòîÿííî îòîáðàæàëîñü íà ýêðàíå, îòêëþ÷èì äëÿ
íåãî ñðåäñòâî Auto Hide.
8. Ïîìåñòèòå óêàçàòåëü ìûøè íà ÿðëûê Solution Explorer. Êîãäà îòîáðàçèòñÿ îä-
íîèìåííîå îêíî, ùåëêíèòå íà êíîïêå Auto Hide, íàõîäÿùåéñÿ â ñòðîêå çàãî-
ëîâêà, â ðåçóëüòàòå ÷åãî âíåøíèé âèä êíîïêè èçìåíèòñÿ.
9. Ïåðåìåñòèòå óêàçàòåëü ìûøè çà ïðåäåëû îêíà Solution Explorer. Îêíî âñå ðàâíî
áóäåò îòîáðàæàòüñÿ íà ýêðàíå.
Îáðàòèòå âíèìàíèå, ÷òî â äàííûé ìîìåíò íà ýêðàíå îòêðûòû íå âîñåìü, à òîëüêî
÷åòûðå îêíà.  ñëåäóþùèõ ðàçäåëàõ ìû ïîäðîáíî ðàññìîòðèì îêíà Windows Form
Designer, Solution Explorer è Properties.
Îêíà Windows Form Designer è Solution Explorer
Îêíî Windows Form Designer, ïîêàçàííîå íà ðèñ. 1.8, ïðåäîñòàâëÿåò âîçìîæíîñòü
ïðîåêòèðîâàòü èíòåðôåéñ ïîëüçîâàòåëÿ. Ïîêà â îêíå íàõîäèòñÿ òîëüêî îáúåêò
Windows Form.  âåðõíåé ÷àñòè óïîìÿíóòîãî îêíà ðàñïîëàãàåòñÿ âêëàäêà Form1.vb
[Design]. Çäåñü òåêñò, çàêëþ÷åííûé â êâàäðàòíûå ñêîáêè, îáîçíà÷àåò, ÷òî ýòî îêíî
êîíñòðóêòîðà Windows-ôîðì, à ïåðâàÿ ÷àñòü íàçâàíèÿ — Form1.vb — èìÿ ôàéëà,
â êîòîðîì ñîäåðæèòñÿ íåîáõîäèìàÿ äëÿ ïîñòðîåíèÿ îáúåêòà Windows Form ïðî-
ãðàììà, ñîçäàííàÿ ñ ïîìîùüþ Visual Basic .NET. Èìÿ ôàéëà Form1.vb îòîáðàæàåò-
ñÿ òàêæå â îêíàõ Solution Explorer è Properties.
Ðàññìîòðèì ïîêàçàííûé â îêíå Windows Form Designer îáúåêò Windows Form. Îí
ïðåäñòàâëÿåò ñîáîé ôîðìó, íà áàçå êîòîðîé â Windows-ïðèëîæåíèÿõ ðàçðàáàòû-
âàåòñÿ ïîëüçîâàòåëüñêèé èíòåðôåéñ. Ïðè ñîçäàíèè èíòåðôåéñà âû áóäåòå äîáàâ-
ëÿòü â íåå êíîïêè, ïîëÿ ââîäà è äðóãèå îáúåêòû.  âåðõíåé ÷àñòè ôîðìû ðàñïîëà-
ãàåòñÿ ñòðîêà çàãîëîâêà, ãäå íàõîäÿòñÿ çàãîëîâîê, â äàííîì ñëó÷àå Form1, à òàêæå
ñòàíäàðòíûå êíîïêè ñâîðà÷èâàíèÿ, ðàçâîðà÷èâàíèÿ è çàêðûòèÿ îêíà. Êðîìå òîãî,
Çàíÿòèå 1. Ñîçäàíèå Windows-ïðèëîæåíèé 27
- 26. äëÿ îáëåã÷åíèÿ ïðîöåññà âûðàâíèâàíèÿ îáúåêòîâ â îáëàñòè ôîðìû îòîáðàæàåòñÿ
ñåòêà, êîòîðàÿ ïðè ðàáîòå ïðèëîæåíèÿ áóäåò ñêðûòà.
Ðèñ. 1.8. Îêíî Windows Form Designer
ÏÐÈÌÅ×ÀÍÈÅ
Îáúåêò Windows Form ÿâëÿåòñÿ ÷ëåíîì îäíîèìåííîãî êëàññà. Êëàññ, â ñâîþ î÷åðåäü, ïðåä-
ñòàâëÿåò ñîáîé øàáëîí, íåîáõîäèìûé äëÿ ñîçäàíèÿ ýêçåìïëÿðà îáúåêòà.
Òåïåðü ïåðåéäåì ê îïèñàíèþ îêíà Solution Explorer. Çäåñü ïðåäñòàâëåí ñïèñîê ñî-
äåðæàùèõñÿ â êîíêðåòíîì ðåøåíèè ïðîåêòîâ è ýëåìåíòîâ êàæäîãî ïðîåêòà. Îêíî
Solution Explorer, âêëþ÷àþùåå òàêîé ñïèñîê äëÿ ðåøåíèÿ íàøåé çàäà÷è — ñîçäàíèÿ
çàñòàâêè Copyright, ïîêàçàíî íà ðèñ. 1.9.
Ðèñ. 1.9. Îêíî Solution Explorer ñ îòêðûòîé
ïàïêîé References
28 Òåìà 1. Çíàêîìñòâî ñ Visual Basic .NET
- 27. Êàê âèäíî íà ðèñóíêå, ðåøåíèå Copyright Solution ñîäåðæèò îäèí ïðîåêò, íàçûâàþ-
ùèéñÿ Copyright Project. Â íåì íàõîäÿòñÿ ïàïêà References ñ íåîáõîäèìîé äëÿ äàí-
íîãî ïðîåêòà èíôîðìàöèåé è äâà ôàéëà — AssemblyInfo.vb è Form1.vb.
Ðàññìîòðèì ñîäåðæèìîå ïàïêè References. Äëÿ ýòîãî íóæíî ùåëêíóòü íà çíà÷êå
«+» ðÿäîì ñ äàííîé ïàïêîé, ïîñëå ÷åãî åå ñîäåðæèìîå áóäåò îòîáðàæåíî íà ýêðàíå.
 ïàïêå References ðàñïîëàãàþòñÿ ññûëêè, ÿâëÿþùèåñÿ ïðîñòî àäðåñàìè ÿ÷ååê ïà-
ìÿòè êîìïüþòåðà. Êàæäàÿ ññûëêà óêàçûâàåò íà ïðîñòðàíñòâî èìåí, êîòîðîå ìîæ-
íî ïðåäñòàâëÿòü â âèäå áëîêà ÿ÷ååê ïàìÿòè. Ïðîñòðàíñòâî èìåí ñîäåðæèò îïåðà-
òîðû, îïðåäåëÿþùèå ãðóïïó ñâÿçàííûõ êëàññîâ. Íàïðèìåð, ïðîñòðàíñòâî èìåí
System.Windows.Forms âêëþ÷àåò îïðåäåëåíèå êëàññà Windows Form, èñïîëüçóþùåãîñÿ
äëÿ ñîçäàíèÿ (èíèöèàëèçàöèè) ýêçåìïëÿðà îáúåêòà Windows Form. Åñëè â ïðîåêòå
ñîäåðæèòñÿ ññûëêà íà ïðîñòðàíñòâî èìåí, òî ïðè ñîçäàíèè îáúåêòîâ îí ìîæåò èñ-
ïîëüçîâàòü êëàññû, îïðåäåëåííûå â ýòîì ïðîñòðàíñòâå èìåí.
Íàïîìíèì, ÷òî â ïðîåêòå Copyright Project íàõîäÿòñÿ òàêæå äâà ôàéëà ñ èìåíàìè
AssemblyInfo.vb è Form1.vb. Îíè ÿâëÿþòñÿ èñõîäíûìè ôàéëàìè, òî åñòü òàêèìè,
â êîòîðûõ ðàñïîëàãàåòñÿ êîä ïðîãðàììû. Â ïåðâîì èç óïîìÿíóòûõ ôàéëîâ õðà-
íèòñÿ ïðîãðàììà, íåîáõîäèìàÿ äëÿ èíñòàëëÿöèè è êîíôèãóðèðîâàíèÿ ïðîåêòà.
Ôàéë Form1.vb â òåêóùèé ìîìåíò ñîäåðæèò êîä, ïðåäíàçíà÷åííûé äëÿ èíèöèàëè-
çàöèè îáúåêòà Windows Form, ïðåäñòàâëåííîãî â îêíå êîíñòðóêòîðà. Êîãäà âû äîáà-
âèòå â ôîðìó îáúåêòû (êíîïêè, ïîëÿ ââîäà è ò. ä.), â ýòîì ôàéëå áóäóò àâòîìàòè-
÷åñêè ñîçäàíû èíèöèàëèçèðóþùèå èõ ïðîãðàììû. Êðîìå òîãî, ôàéë Form1.vb
ñîäåðæèò îïåðàòîðû, êîòîðûå ââîäÿòñÿ â ðåäàêòîðå êîäà (î òîì, êàê ðàáîòàòü ñ äàí-
íûì ðåäàêòîðîì, ìû ðàññêàæåì â çàíÿòèè 3 ýòîé òåìû).
Ïîìèìî ïàïêè References è äâóõ èñõîäíûõ ôàéëîâ, ïðîåêò Copyright Project âêëþ-
÷àåò äðóãèå ôàéëû è ïàïêè. Ñåé÷àñ èìåíà ýòèõ ôàéëîâ è ïàïîê íå îòîáðàæàþòñÿ
â îêíå Solution Explorer, îäíàêî èõ ìîæíî âûâåñòè íà ýêðàí ïîñðåäñòâîì êíîïêè
Show All Files, ðàñïîëîæåííîé íà ïàíåëè èíñòðóìåíòîâ äàííîãî îêíà.
×òîáû ïðîñìîòðåòü äîïîëíèòåëüíûå ïàïêè è ôàéëû, ñîäåðæàùèåñÿ â ïðîåêòå,
âûïîëíèòå ñëåäóþùèå äåéñòâèÿ.
1. Ñâåðíèòå îêíî Properties, íàæàâ êíîïêó Auto Hide â ñòðîêå åãî çàãîëîâêà, à çà-
òåì ïåðåìåñòèâ óêàçàòåëü ìûøè çà ïðåäåëû îêíà. Òåïåðü îêíî Solution Explorer
çàéìåò áîëüøóþ ÷àñòü ýêðàíà.
2. Àêòèâèçèðóéòå êíîïêó Show All Files íà ïàíåëè èíñòðóìåíòîâ îêíà Solution
Explorer è ùåëêíèòå ìûøüþ íà âñåõ çíà÷êàõ «+» (ðèñ. 1.10).
Êíîïêà Show All Files äåéñòâóåò ïîäîáíî ïåðåêëþ÷àòåëþ: ùåëêíóâ íà íåé ìîæíî
îòîáðàçèòü èëè óáðàòü ñ ýêðàíà ïàïêè è ôàéëû.
3. Ñíîâà íàæìèòå êíîïêó Show All Files, è èìåíà äîïîëíèòåëüíûõ ôàéëîâ è ïàïîê
áóäóò ñêðûòû.
4. Ùåëêíèòå íà çíà÷êå «–» ðÿäîì ñ ïàïêîé References, äëÿ òîãî ÷òîáû ñêðûòü
èìåíà ññûëîê.
5. Ïîìåñòèòå óêàçàòåëü ìûøè íà âêëàäêó Properties è, êîãäà îòîáðàçèòñÿ îäíî-
èìåííîå îêíî, íàæìèòå êíîïêó Auto Hide. Ïîñëå ýòîãî îêíî áóäåò ïðèñóòñòâî-
âàòü íà ýêðàíå ïîñòîÿííî.
Çàíÿòèå 1. Ñîçäàíèå Windows-ïðèëîæåíèé 29
- 28. Ðèñ. 1.10. Äîïîëíèòåëüíûå ïàïêè è ôàéëû,
îòîáðàæåííûå â îêíå Solution Explorer
Êàê âû óæå çíàåòå, êîä, ñîçäàþùèé ôîðìó Windows Form, õðàíèòñÿ â èñõîäíîì ôàé-
ëå íà æåñòêîì äèñêå, ïîýòîìó äàííûé ôàéë íàçûâàåòñÿ ôàéëîì ôîðìû. Êîä, îò-
íîñÿùèéñÿ ê ïåðâîìó îáúåêòó ôîðìû, ñîçäàííîìó â ïðîåêòå, àâòîìàòè÷åñêè ñî-
õðàíÿåòñÿ â ôàéëå ôîðìû ñ èìåíåì Form1.vb. Êîä, ñâÿçàííûé ñî âòîðûì îáúåêòîì
Windows Form ýòîãî æå ïðîåêòà, ñîäåðæèòñÿ â ôàéëå ñ èìåíåì Form2.vb è ò. ä. Ïî-
ñêîëüêó ïðîåêò ìîæåò âêëþ÷àòü â ñåáÿ ìíîæåñòâî îáúåêòîâ Windows Form è, ñëåäî-
âàòåëüíî, ñòîëüêî æå ôàéëîâ, èìååò ñìûñë ïðèñâàèâàòü ôàéëàì ôîðìû áîëåå èí-
ôîðìàòèâíûå èìåíà. Èçìåíèòü èìÿ ôàéëà ìîæíî ïîñðåäñòâîì îêíà Properties.
Îêíî Properties
Ôàéë ôîðìû â ëþáîì îáúåêòíî-îðèåíòèðîâàííîì ÿçûêå ÿâëÿåòñÿ îáúåêòîì. Êà-
æäûé îáúåêò â Visual Basic .NET èìååò ìíîæåñòâî ñâÿçàííûõ ñ íèì õàðàêòåðè-
ñòèê, êîòîðûå íàçûâàþòñÿ ñâîéñòâàìè. Ñâîéñòâà, îïðåäåëÿþùèå âèä è ïîâåäåíèå
îáúåêòà, ïåðå÷èñëåíû â îêíå Properties. Ïðè ñîçäàíèè îáúåêòà êàæäîìó åãî ñâîé-
ñòâó ïðèñâàèâàåòñÿ çíà÷åíèå ïî óìîë÷àíèþ. Íàïðèìåð, â îêíå Properties, èçîáðà-
æåííîì íà ðèñ. 1.11, âû âèäèòå çíà÷åíèÿ, ïðèñâîåííûå ñâîéñòâàì ôàéëà ôîðìû
Form1.vb.
Êàê âèäèòå, â îêíå Properties íàõîäÿòñÿ ïîëå Object (ýòî ïîëå, êîòîðîå ñîäåðæèò èìÿ
îáúåêòà) è ïàíåëü c ïåðå÷íåì ñâîéñòâ îáúåêòà è ñîîòâåòñòâóþùèõ èì çíà÷åíèé.
Ïîñëå âûáîðà îáúåêòà â îêíå Solution Explorer åãî èìÿ è ñâîéñòâà îòîáðàæàþòñÿ
â îêíå Properties. Èìÿ îáúåêòà (â äàííîì ñëó÷àå èìÿ ôàéëà ôîðìû Form1.vb) ïîÿâ-
ëÿåòñÿ â ïîëå Object, ðàñïîëîæåííîì ïîä ñòðîêîé çàãîëîâêà îêíà, à ñïèñîê ñâîéñòâ,
îòñîðòèðîâàííûõ â àëôàâèòíîì ïîðÿäêå ëèáî ïî êàòåãîðèÿì, îòîáðàæàåòñÿ
â äâóõ ñòîëáöàõ. Ëåâûé ñòîëáåö ñîäåðæèò âñå ñâÿçàííûå ñ âûäåëåííûì îáúåêòîì
ñâîéñòâà, à ïðàâûé — èõ òåêóùèå çíà÷åíèÿ. Íàïðèìåð, êàê ñëåäóåò èç ðèñ. 1.11,
ñâîéñòâî Build Action èìååò çíà÷åíèå Compile. Êðîìå òîãî, â íèæíåé ÷àñòè îêíà
30 Òåìà 1. Çíàêîìñòâî ñ Visual Basic .NET