O’ZBEKISTON RESPUBLIKASI OLIY VA O’RTA
MAXSUS TA’LIM VAZIRLIGI
FARG’ONA DAVLAT UNIVERSITETI
FIZIKA-MATEMATIKA FAKULTETI
“AMALIY MATEMATIKA VA INFORMATIKA’’
YO’NALISHI
Mavzu: C# dasturlash tilida dialog oynalari (messege
operatorlar misolida)
KURS ISHI
BAJARDI:Amaliy matematika
va informatika yo‘nalishi 18.08
A-guruh talabasi: H.Nabiyev
KURS
ISHI
RAXBARI:
.Ismoilov.
Farg’ona – 2019
2
MUNDARIJA
KIRISH .............................................................................
3
C# dasturlash tili tarixi ......................................................
5
Asosiy qism .......................................................................
7
Muloqot oynasi ................................................................
13
Windows form. ................................................................
14
Muloqot oynasi va uning turlari ......................................
15
Standart turdagi dialog oynasi .........................................
16
Mahsus turdagi dialog oynasi ..........................................
17
Dioalogli qutilar va uning turlari .....................................
18
Combox bilan ishlash ......................................................
19
Modal dialog oynasi ........................................................
22
Umumiy dialog oynasi ....................................................
24
Dasturiy qism ..................................................................
29
Xulosa .............................................................................
35
Foydalangan adabiyotlar .................................................
37
3
KIRISH
Vatanimizda, erkin va farovon hayot barpo etish, rivojlangan mamlakatlar
qatoridan o‗rin olish, demokratik jamiyat qurish kabi ezgu maqsadlarni qo‗yildi.
Bu esa kelajagimizni yaqqol tasavvur etish, jamiyatimizning ijtimoiy-ma‘naviy
poydevorini mustahkamlash ehtiyojini tug‗diradi. Demak, galdagi eng asosiy
vazifa: yosh avlodni vatan ravnaqi, yurt tinchligi, xalq farovonligi kabi olijanob
tuyg‗ular ruhida tarbiyalash, yuksak fazilatlarga ega, ezgu g‗oyalar bilan
qurollangan komil insonlarni voyaga etkazish, jahon andozalariga mos, kuchli
bilimli, raqobatbardosh kadrlar tayyorlashdir. O‗zbekistonning iqtisodiy va
ijtimoiy sohalarda yuqori natijalarga erishishi, jahon iqtisodiy tizimida to‗laqonli
sheriklik o‗rnini egallay borishi, inson faoliyatining barcha jabhalarida zamonaviy
axborot texnologiyalaridan yuqori darajada foydalanishning ko‗lamlari qanday
bo‗lishiga hamda bu texnologiyalar ijtimoiy mehnat samaradorligini oshishida
qanday rol o‗ynashiga bog‗liq. Keyingi yillarda mamlakatimiz ilm-fani ham
axborotlashtirishning nazariy asoslariga katta hissa qo‗shib kelmoqda, shu bilan
birgalikda, hodisalar, jarayonlarni yagona axborot asosida tadqiq etishning ilmiy
yo‗nalishlarini tahlil va sintez qilish natijasi bo‗lgan fan-informatikaning vujudga
kelishiga boshlang‗ich nuqta qo‗yildi. Axborot, energiya, vazn, bo‗shliq va vaqtni
bir butun holda batafsil o‗rganish hozirgi vaqtda inson hayotining barcha jabha-
larida muhim axamiyatga ega bo‗lib qolmoqda. C# (talaffuzi: si sharp) dasturlash
tili Microsoft korporatsiyadan obyekt mo‘ljanllangan dasturlash tilidir.U .NET
texnologiyasi bilan reliz kelishdi, keyingi ESMA va ISO standartlarini ham oladi.
С# tili 1972 yilda Nyu-Djersi shtatining Myurrey-xill shahrida Bell
Laboratoriya kompaniyasining tizimli dastur tuzuvchisi Dennis Richie tomonidan
yaratilgan. Bu til o‘zini shunchalik yaxshi ko‘rsatdiki, oxir oqibatda unda Unix
operatsion tizimlarining 90% yadro kodlari yozildi. (oldin quyi assamberlarda
yozilgan). C# ning vujudga kelishidan oldinroq yaratilgan tillardan yetarli darajada
foydalanilgan.
C# tili dasturlashning zamonaviy davri boshlanishini belgilab berdi.
4
1960-yillarda dasturlash texnologiyalaridagi struktaraviy dasturlashning paydo
bo‘lishiga olib kelib kelgan inqilobiy o‘zgarishlar C# tilining yaratilishiga asosiy
imkonyatlarni belgilab berdi.C# tili kuch, elegantik va ma‘nodorlikni o‘zida
muvaffiqiyatli birlashtirgan birinchi strukturaviy til bo‘ldi. Uning bo‘lishi mumkin
bo‘lgan xatolar ma‘sulyatini tilga emas dastur tuzuvchi zimmasiga yuklaydigan
prinsiplar bilan inobatga olgan holda sintaksisdan foydalanishdagi qisqalik va
osonlik kabi xususiyatlari tezda ko‘plab tarafdorlarni topdi.
Kurs ishining dolzarbligi:Ushbu kurs ishi hozirgi kunda kompyuterda
berilgan masalalarni dasturlash tillari orqali yechish va dasturda dialogs
oynalaridan va shu kabi tushunchalardan foydalanish kabi vazifalarni o‘rganishga
olib keladi.
Kurs ishining maqsadi:
C#
dasturlash tilida dialogs oynalarini (messege
operatori misolida ko‘rish ), hamda ular haqida tushunchalar olish.
Kurs ishining obyekti:
C#
dasturlash tilida dialogs oynalari(messege
operatorlari misolida ) o‘quvchilarga ma‘lumot berishdan iborat.
5
C# tili tarixi
-C dasturlash tilining evolyutsiyasi:ALGO-BCPL-B-TraditionC-K&R C-ANSI C-
ANSI/ISO C99.
-C dasturlash tili Bell labaratoriyasida 1972-yilda Dennis Ritchie tomonidan
yaratilgan.
-C dasturlash tili kompyuter dasturlash tillari tarixida eng ko`p vaqt foydalanilgan
til hisoblanadi.
-C dasturlash tilida 45 ta operator bo`lib ular 8 ta guruhga bo`linadi.
-C dasturlash tilida 2 xil konstanta bor. Bular: Primary va Secondary constant.
-C dasturlash tili obyektga yo`naltirilgan dasturlash tili bo`lmaganligi uchun
Vorislik va Polimforfizm tushunchalari yoq .
-C dasturlash tili ko`plab boshqa dasturlash tillarining asosi hisoblanadi. Misol
uchun C++, Java, Java Script, Go, Rust,Limbo, LPC, C#, PHP, Python, Perl,
Verilog va C-shell shular jumlasidan.
Kompyuter tillari oʻz-oʻzidan emas, balki oʻzaro bir-biriga bogʻliqlikda
mavjud boʻladi. Har qanday yangi til u yoki bu shaklda oldingi yaratilgan tillarning
xossalarini oʻziga meros qilib oladi, yaʼni ketma-ketlik prinsipi amalga oshiriladi.
Natijada bitta tilning imkoniyatlari boshqalari tomonidan foydalaniladi (masalan,
yangi xususiyatlar mavjud kontekstga birlashtiriladi, tilning eski tuzilishlari esa
oʻchirib yuboriladi). Kompyuter tillarining evolyutsiyasi shunday tarzda roʻy
beradi va dasturlash mahorati takomillashtiriladi. C# tili yuqoridagilardan istisno
emas, u boshqa dasturlash tillarining koʻplab foydali imkoniyatlarini meros qilib
oldi va dunyoda eng koʻp qoʻllaniladigan ikkita kompyuter tillari — Ci, C++,
shuningdek Java tili bilan uzviy bogʻliqdir. C# tili 1972 yilda Nyu-Djersi
shtatining Myurrey-xill shahrida Bell Laboratories kompaniyasining tizimli dastur
tuzuvchisi
Dennis Richie
tomonidan yaratilgan. Bu til oʻzini shunchalik yaxshi
koʻrsatdiki, oxir oqibatda unda
Unix
operatsion tizimlarining 90 % yadro kodlari
yozildi (oldin quyi darajadagi til assemblerda yozilgan). C# ning vujudga
6
kelishidan oldinroq yaratilgan tillardan, (
Pascal
ulardan eng mashhuri hisoblanadi),
yetarli darajada muvaffaqiyatli foydalanilgan, lekin aynan C# tili dasturlashning
zamonaviy davri boshlanishini belgilabberdi.
1960-yillarda
dasturlash texno-
logiyalaridagi strukturaviy dasturlashlarning paydo boʻlishiga olib kelgan inqilobiy
oʻzgarishlar C# tilini yaratish uchun asosiy imkoniyatlarni belgilab berdi.
Strukturaviy dasturlashlarning paydo boʻlishiga qadar katta dasturlarni yozish
qiyin boʻlgan, satr kodlari miqdorining oshishi sababli dasturlarning oʻtish joylari
chalkash massalariga aylanib ketishiga olib keladi. Strukturaviy tillar dastur
tuzuvchi instrumentariysiga shartli operatorlarni, lokal oʻzgaradigan tartiblarni va
boshqa mukammallashtirishlarni qoʻshib bu muammoni hal qildi. Shunday tarzda
nisbatan katta dasturlarni yozish imkoniyati vujudga keldi. Aynan C# tili kuch,
elegantlik va maʼnodorlikni oʻzida muvaffaqiyatli birlashtirgan birinchi
strukturaviy til boʻldi. Uning boʻlishi mumkin boʻlgan xatolar masʼuliyatini tilga
emas dastur tuzuvchi zimmasiga yuklaydigan prinsiplar bilan inobatga olgan holda
sintaksisdan foydalanishdagi qisqalik va osonlik kabi xususiyatlari tezda koʻplab
tarafdorlarini topdi. Bugungi kunda biz mazkur sifatlarni oʻz oʻzidan
anglashiladigan deb hisoblaymiz, lekin S da birinchi marotaba dastur tuzuvchiga
zarur boʻlgan ajoyib yangi imkoniyatlar mujassamlashtirilgan. Natijada 1980
yillardan boshlab S strukturaviy dasturlash tillari orasida eng koʻp
foydalaniladiganlaridan biri boʻlib qoldi. Biroq, dasturlashning rivojlantirish
choralariga koʻra bundanda kattaroq dasturlarni qayta ishlash muammosi kelib
chiqmoqda. Loyiha kodi maʼlum bir hajmga yetgan zahoti (uning raqamli
ahamiyati dastur, dastur tuzuvchi, foydalanilgan instrumentlarga bogʻliq boʻladi,
lekin taxminan 5000 satr kodlari nazarda tutilayapti) S-dasturlarini tushunish va
kuzatib borishda qiyinchiliklar yuzaga keladi. C# dasturlash tilida boshqa
dasturlash tilida boshqa dasturlash tillari-misol uchun C++ dagidek 8 razryadli
kodlash tizimidan emas, Unicode deb ataluvchi 16 razryadli kodlash tizimidan
foydalaniladi.
C# leksik jihatdan kengaytirilgan, imperative, deklarativ,
funktsional,
umumiy,
ob`ektga
yo`naltirilgann
(sinfga
asoslangan)
va
kompanentlarga yo`naltirilgan dasturlash fanlarni o`z ichiga olganumumiy
7
maqsadli, ko`p paradigmali dasturlash tili. U 1998-2001-yilda
Microsoft
kompaniyasi dasturchilari Anderson Xeylsberg va Skot.V lar tomonidan .
NET
tashabbusi doirasida ishlab chiqilganva keyinchalik Ecma (ECMA-334) va ISO
(ISO/IES23270:2018) tomonidan xalqaro standart sifatida tasdiqlangan.Hozirgi
kunda C# dasturlash tili yuqori bosqichli dasturlash tillari ichida eng samarali
dasturlash tillaridan hisoblanadi. C# dasturlash tilida dastur tuzish uchun Visual
Studio .NET muhitidan foydalanamiz. C# dasturlash tili obektga mo‘ljallangan
dasturlash tili hisoblanadi. Visual Studio.NET sistemasida dasturni kompilyatsiya
qilish va bajarishning bir necha usuli bor. Ko‘p hollarda dasturchilar dasturni
alohida kompilyatsiya qilib bir nechta klavishalar kombinatsiyalari orqali
ishlatishga o‘rganishgan.
C# da dasturlashning asosiy qismi: C# sistemasi asosan quyidagi
qismlardan iborat. Bular dasturni yozish redaktori, C# tili va standart
kutubxonalardir. C# dasturi ma'lum bir fazalardan o'tadi. Birinchisi dasturni yozish
va tahrirlash, ikkinchisi preprosessor amallarini bajarish, kompilyatsiya,
kutubhonalardagi ob'ekt va funksiyalarni dastur bilan bog'lash (link), hotiraga
yuklash (load) va bajarish (execute).
if strukturasi: Biz shartga ko'ra bir necha harakat yo'lidan bittasini tanlaymiz.
Misol uchun agar bolaning yoshi 7 ga teng yoki katta bo'lsa u maktabga
borishi mumkin bo'lsin. Buni C# da if ni qo'llab yozamiz.
if (yosh >= 7)
maktab();
Bu yerda shart bajarilishi yoki bajarilmasligi mumkin.Agar yosh
o'zgaruvchisi 7 ga teng yoki undan katta bo'lsa shart bajariladi va maktab()
funksiyasi chaqiriladi. Bu holat true (to'g'ri) deyiladi. Agar yosh 7 dan kichik
bo'lsa, maktab() tashlab o'tiladi. Yani false (noto'g'ri) holat yuzaga keladi. Biz shart
qismini mantiqiy operatorlarga asoslanganligini ko'rib chiqqan edik. Aslida esa
shartdagi ifodaning ko'rinishi muhim
8
emas – agar ifodani nolga keltirish mumkin bo'lsa false bo'ladi, noldan farqli javob
bo'lsa, musbatmi, manfiymi, true holat paydo bo'ladi va shart bajariladi. Bunga
qo'shimcha qilib o'tish kerakki, C# da mahsus bool tipi mavjud. Bu tipdagi
o'zgaruvchilarning yordamida bul (mantiqiy) arifmetikasini amalga oshirish
mumkin. bool o'zgaruvchilar faqat true yoki false qiymatlarini olishlari mumkin.
if/else strukturasi: If…else – bu shartli o‘tish operatori bo‘lib, shart if qismida
bajariladi. Agar shart rost bo‘lsa, shartdan so‘ng yozilgan instruksiyalar
to‘plami (tarkibli instruksiya) bajariladi, agar yolg‘on bo‘lsa, else qismida
yozilgan (yozilmagan bo‘lishi ham mumkin) tarkibli instruksiya bajariladi. if ni
qo'llaganimizda ifoda faqat shart haqiqat bo'lgandagina bajariladi, aks holda
tashlanib o'tiladi. if/else yordamida esa shart bajarilmaganda (false natija
chiqqanda) else orqali boshqa bir yo'ldan borishni belgilash mumkin. Misolimizni
takomillashtirsak. Bola 7 yosh yoki undan katta bo'lsa maktabga, 7 dan kichkina
bo'lsa bog'chaga borsin.
if (yosh >= 7)
maktab(); //nuqta-vergul majburiydir
else
bogcha();
Yuqorida if ga tegishli bo'lgan blok bitta ifodadan (maktab()) iborat. Shu
sababli nuqta-vergul qo'yilishi shart. Buni aytib o'tishimizning sababi, masal
Pascalda hech narsa qo'yilmasligi shart. C# da bitta ifoda turgan joyga ifodalar
guruhini {} qavslarda olingan holda qo'ysa bo'ladi.
switch strukturasi: if-else-if yordami bilan bir necha shartni test qilishimiz
mumkin. Lekin bunday yozuv nisbatan o'qishga qiyin va ko'rinishi qo'pol bo'ladi.
Agar shart ifoda butun son tipida bo'lsa yoki bu tipga keltirilishi mumkin bo'lsa,
biz switch (tanlash) ifodalarini ishlata olamiz. switch strukturasi bir necha case
etiketlaridan (label) va majburiy bo'lmagan default etiketidan iboratdir. Etiket bu
9
bir nomdir. U dasturnig bir nuqtasiga qo'yiladi. Programmaning boshqa yeridan
ushbu etiketga
o'tishni bajarish mumkin. O'tish yoki sakrash goto bilan amalga oshiriladi, switch
blokida ham qo'llaniladi.
.Switch operatori quyidagicha ishlaydi :
Switch (ifoda)
{
case : o‘zgarmas ifoda : instruksiya
o‘tish ifodasi
[default : instruksiya]
}
Switch operatorida default amalini yozish shart emas, chunki u
berilgan
qiymatning tanlangan birorta qiymatga mos kelmaganda bajariladigan
amallarni
o‘z ichiga oladi. Agarda berilgan qiymat birorta tanlangan qiymatga mos kelsa, u
holda case amalidan keyin bajariladigan amallar (ular bir nechta bo‘lsa, { } orasiga
olinadi) bajariladi, so‘ng break amali switch operatorining ishini shu joyda
to‘xtatadi va switch operatoridan keyin keladigan operator ishini davom ettiradi.
C va C++ tillarida keyingi case amaliga avtomatik o‘tishingiz mumkin,
agarda
oldingi case amalining oxirida break yoki goto operatorlari yozilmagan
bo‘lsa.
Shunday qilib, C# va C++ da quyidagicha yozish mumkin :
10
Case : statement 1 ;
Case : statement 2;
Break ;
while takrorlash strukturasi: Bu takrorlash operatori ―shart qanoatlantiradi –
ish davom etadi‖ qoidasi bo‘yicha ishlaydi.Takrorlash strukturasi bir ifoda yoki
blokni ma'lum bir shart to'g'ri (true) bo'lishi davomida qaytarish imkonini beradi.
Qaytarilayotgan ifoda shartga ta'sir ko'rsatishi kerak. Ma'lum bir vaqt o'tkandan
keyin shart false ga o'zgartilishi kerak. Bo'lmasam while (davomida) tugatilmaydi.
while faqat o'zidan keyin kelgan ifodaga ta'sir qiladi. Agar biz bir guruh amallarni
qaytarmoqchi bo'lsak, ushbu blokni {} qavslar ichiga olishimiz kerak. Shart
takrorlanuvchi blokning boshida tekshirilgani sababli, agar shart noto'g'ri bo'lib
chiqsa, blokni hech ijro ko'rmasligi ham mumkin.
while (shart)
{
ifoda1;
ifoda2;
.... }
do/while takrorlash strukturasi: Shunday hollar bo‘ladiki, while takrorlash
operatori sizning talablaringizga javob bermaydi, bunday hollarda do… while
takrorlash operatoridan foydalanish qulayroq.do/while ifodasi while strukturasiga
o'xshashdir. Bitta farqi shundaki whileda shart boshiga tekshiriladi. do/while da esa
takrorlanish tanasi eng kamida bir marta ijro ko'radi va shart strukturaning so'ngida
test qilinadi. Shart true bo'lsa blok yana takrorlanadi. Shart false bo'lsa do/while
ifodasidan chiqiladi. Agar do/while ichida qaytarilishi kerak bo'lgan ifoda bir dona
bo'lsa {} qavslarning keragi yo'qdir. Quyidagicha bo'ladi:
do
11
ifoda;
while (shart);
Lekin {} qavslarning yo'qligi dasturchini adashtirishi mumkin. Chunki qavssiz
do/while oddiy while ning boshlanishiga o'xshaydi. Buni oldini olish uchun {}
qavslarni har doim qo'yishni tavsiya etamiz.
do
{
ifoda1;
ifoda2;
}
while (shart);
Goto takrorlash strukturasi. Goto operatori boshqa barcha takrorlash
operatorlari uchun asosiy mezon bo‘lib xizmat qiladi. Lekin shu bilan birgalikda
unda juda ko‘p o‘tishlar amalga oshiriladi va buning natijasida dastur
chalkashliklarga yo‘l qo‘yadi. Professional dasturchilar odatda unda juda ko‘p
o‘tishlar amalga oshiriladi va buning natijasida dastur chalkashliklarga yo‘l
qo‘yadi. Professional dasturchilar odatda unda foydalanihmaydi, lekin C# tilini
chalkashliklarga yo‘l qo‘yadi C# tilini mukammal o‘rganish uchun bu operator
haqida qisqacha aytib o‘tamiz:
1. Label (metka, belgi) yaratiladi.
2. Labelga o‘tish bajariladi.
Masalan:
using System;
public class Labels
12
{
public static int Main( )
{
int i = C;
label:
Console.WriteLine ("i: {0 } ", i);
i + + ;
if (i < 10) goto label;
return 0;
}
}
For takrorlash strukturasi. Agar yana bir bor yuqoridagi barcha takrorlash
operatorlari (while, do…while, goto) ga e‘tibor bersak, shuni aniqlash
mumkinki, ularda doimo oldin i o‘zgaruvchisi inisializatsiya (nomlash) qilinadi,
keyin u 1 taga ortiriladi va takrorlanish sharti (i<10) tekshiriladi. For takrorlash
operatori
bu
amallarni
bitta
instruksiyaga
birlashtiradi.
For ((inisializatsiya(nomlash) ); [ifoda] ; [i ni ortirish])
{
instruksiya
}
Yuqoridagi misolni for takrorlanish operatori bilan yechamiz :
using System;
public class Labels
{
13
public static int Main ( )
{
for(int i = 0; i < 10; i++)
{
Console.WriteLine("i: {0}", i);
}
return 0;
} }
Yaratilgan tiplar.
Quyidagi jadvalda C# tilida yaratilgan tiplar va ularning o‘chami keltirilgan:
1.1-jadval.Standart tiplar.
Tip
Qiymat oralig‘i
O‘lchami
Sbyte
-128 to 127
Belgili 8-bit butun
Byte
0 to 255
Belgisiz 8-bit
Butun
Char U + 0000 to U + FFFF
16-bitli Unicod
Bool
true yoki false.
1 bayt
Short
-32768 to 32767
Belgili 16-bit
Ushort
0 to 65535
Belgisiz 16-bit
Int
-2147483648 to 2147483647
Belgili 32-bit
Uint
0 to 4294967295
Belgisiz 32-bit
Long
-9223372036854775808 to
9223372036854775807
Belgili 32-bit
Ulong
0 to 18446744073709551615
Belgisiz 32-bit
Float
-1.5*10^6 to 3.4 *10^7 4
bayt, aniqlik — 7
razryadli
Double
-1.5*10^6 to 3.4 *10^7 8
bayt, aniqlik —16
razryadli
14
Decimal
-5.0*10^3 2 4 to 1.7 -lO3 0 8
12
bayt, aniqlik —
28 razryadli
C# tilida yozilgan dasturni ishlatish uchun:
1. Kodni fayllar sistemasida biror nom bilan saqlash lozim (hello.cs)
2. Kommandalar satrida csc /debug hello.cs buyrug‘ini bajarish lozim Ushbu
buyrug‘ bajarilgach, natijaviy .exe kengaytmali fayl hosil bo‘ladi. Agar
kompilyatsiya jarayonida xatolik yuzaga kelsa, ma‘lumot chiqariladi. /debug
parametri bajariluvchi faylga maxsus simvollarni joylashtiradi. Natijada exe faylni
qayta ishlovchi dasturda taxlil qilinayotganda stekni kuzatib borishlari
mumkin.
3. Dasturni ishlatish natijasida, ekranga Hello yozuvi chiqariladi.
C# dasturlash tilida ; (nuqtali vergul) belgisi operator yakunlanganini bildiradi. Bu
har bir operator ; belgisi bilan tugashi kerakligini anglatadi.
Blok katta qavslar ichida yozilib, yaxlit mantiqiy element sifatida qaraladi. Shu
sababli blok ; bilan tugamaydi. Buning o`rniga blok yakunida yopiluvchi katta
qavs } qo`yiladi. C# dasturlash tilida satr yakunlanishi operator yakunlanganini
bildirmaydi, operator faqat ; belgisidan keyin yakunlanadi.
Muloqot oynasi nima?
Muloqot oynasi - bu kompyuter va uning foydalanuvchisi o'rtasida umumiy
aloqani yoki dialogni yoqish uchun foydalaniladigan oynaning turi.
Ko'pincha foydalanuvchiga buyruqni qanday bajarish kerakligini yoki savolga
javob berish uchun vositalarni taqdim etish uchun dialog oynasi ishlatiladi.
Windows.Form asosiy sinfdir
Ba'zan foydalanuvchi grafik interfeysida foydalanuvchi bilan aloqa qilish yoki
foydalanuvchi va dastur o'rtasida dialog o'rnatish uchun oyna ishlatiladi. Ushbu
qo'shimcha oyna dialog oynasi deb ataladi. U foydalanuvchi bilan ma'lumot
almashishi mumkin; foydalanuvchidan yoki ikkalasidan ham javob so'rash.
15
Muloqot oynasining eng oddiy turi bu xabarni aks ettiruvchi ogohlantirish bo'lib,
foydalanuvchidan xabar o'qilganligini tasdiqlashni talab qilishi mumkin, odatda
"OK" tugmachasini bosish orqali yoki "OK" tugmachasini bosib davom etish
kerakmi yoki yo'qmi degan qaror. yoki "Bekor qilish".
Ba'zi dialog oynalari ogohlantirish yoki xato xabari kabi standartdir. Faylni
saqlang va parolni kiriting. Ularga standart dialog oynalari deyiladi.
16
Muloqot oynasi ham sozlanishi mumkin. Bunday dialog oynasi maxsus dialog
oynasi deb ataladi.
Dialogli qutilar - bu qayta tiklanmaydigan maxsus shakllar. Bundan tashqari, ular
foydalanuvchiga xabarlarni ko'rsatish uchun ishlatiladi. Xabarlar xato xabarlari,
17
parolni tasdiqlash, ma'lum bir yozuvni o'chirishni tasdiqlash, so'zni topish-
almashtirish dasturi va boshqalar bo'lishi mumkin. Faylni ochish va saqlash,
papkani tanlash, hujjatlarni chop etish uchun standart dialog oynalari mavjud. matn
uchun shrift yoki rangni belgilash va boshqalar.
MessageBox sinfi foydalanuvchiga xabarlarni ko'rsatish uchun ishlatiladi. Show ()
usuli belgilangan matn, sarlavha, tugmalar va belgi bilan xabarlar oynasini
namoyish qilish uchun ishlatiladi. Boshqa ortiqcha yuklar ham mavjud.
Masalan
21
" , MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
if (res == DialogResult.OK) {
MessageBox.Show ( "Siz Ok tugmachasini bosdingiz" );
22
// Ba'zi vazifalar ...
}
if (res == DialogResult.Cancel) {
MessageBox.Show ( "Siz Bekor qilish tugmachasini bosdingiz" );
// Ba'zi vazifalar ...
}
Tegma va piktogramma turlarini tegishli sanab o'tilgan qiymatlardan foydalanib
o'zgartirish mumkin.
Dialogli qutilar ikki xil bo'lib, ular quyida keltirilgan.
Modal dialog oynasi
Modatsiz dialog oynasi
Ilovani vaqtincha to'xtatadigan va foydalanuvchi yopiq bo'lguncha davom
etolmaydigan dialog oynasi modal dialog oynasi deb nomlanadi. Ilovada davom
etishdan oldin ba'zi qo'shimcha ma'lumotlar talab qilinishi mumkin yoki
foydalanuvchi potentsial xavfli harakatlarni davom ettirishni istayotganligini
tasdiqlashni xohlashi mumkin. Dastur faqat dialog oynasi yopilgandan keyingina
bajarishni davom ettiradi; shu vaqtgacha dastur to'xtatiladi. Masalan, faylni
saqlashda foydalanuvchi mavjud fayl nomini beradi; bir xil nomga ega fayl
mavjudligi, u ustidan yozilishi yoki boshqa nom bilan saqlanishi kerakligi
to'g'risida ogohlantirish ko'rsatiladi. Agar foydalanuvchi "OK" yoki "Bekor qilish"
ni tanlamasa, fayl saqlanmaydi.
Qo'llaniladigan dialog oynasining yana bir turi bu modul bo'lmagan dialog oynasi.
U so'ralgan ma'lumotni davom ettirish uchun zarur bo'lmaganda ishlatiladi,
shuning uchun ish boshqa joyda davom etganda, deraza ochiq qoldirilishi mumkin.
Masalan, matn muharririda ishlayotganda, foydalanuvchi ma'lum bir so'zni
23
topishni va almashtirishni xohlaydi. Buni so'zni topish va almashtirishni talab
qiladigan dialog oynasidan foydalanib amalga oshirish mumkin. Foydalanuvchi
ushbu quti ochiq bo'lsa ham ishlashni davom ettirishi mumkin.
Dialog oynasi doimiy ravishda FormBorderStyle xususiyatini
FormBorderStyle.FixedDialog-ga o'rnatib, MinimizeBox va MaximizBox
xususiyatlarini noto'g'ri qilib sozlash orqali sozlanishi mumkin. Framework Class
Library (FCL) Dialog sifatida sinfni ta'minlamaydi. Dasturchi
System.Windows.Form bazaviy klassidan turni olish orqali maxsus dialog
sinflarini yaratadi.
ShowDialog () metodidan foydalangan holda namuna oynasi ko'rsatiladi. Show ()
usulidan foydalangan holda, modetsiz dialog oynalari ko'rsatiladi.
Umumiy dialog oynasi
Barcha Windows dasturlari uchun umumiy bo'lgan ishlatiladigan dialog oynalari.
Faylni saqlash, shriftni tanlash va boshqalar kabi keng tarqalgan vazifalarni
bajaradi. Bu amaliy interfeys uchun standart usulni ta'minlaydi.
Misollar quyida keltirilgan.
FontDialog
ColorDialog
OpenDialog
SaveDialog
Ushbu dialog oynalari operatsion tizim tomonidan amalga oshiriladi, shuning
uchun ularni ushbu operatsion tizimda (Windows) ishlaydigan barcha dasturlarda
bo'lishish mumkin.
24
Umumiy dialog oynasini ishlatish uchun qadamlar
Kerakli umumiy dialog oynasini oching.
Agar kerak bo'lsa, umumiy dialog oynasining xususiyatlarini o'rnating.
Muloqot oynasini chaqirish uchun uning ShowDialog () usulini chaqiring.
ShowDialog () DialogResult deb nomlangan ro'yxatlangan turni qaytaradi. Bu
identifikatorlarni belgilaydi, qaysi tugma bosilganligini ko'rsatadi. Masalan,
DialogResult.OK va DialogResult.Cancel ba'zi qiymatlar mos ravishda OK yoki
Bekor tugmasi bosilganligini bildiradi.
Dialog oynasini oching
OpenFileDialog ilovada ochiladigan faylni tanlashga imkon beradi.
Masalan, kod quyida keltirilgan.
OpenFileDialog ofd = yangi OpenFileDialog ();
ofd.Title = "Matn faylini ochish" ;
ofd.Filter = "Matn fayllari (* .txt) | * .txt | Barcha fayllar (*. *) | *. *" ; // Bu erda
siz ochmoqchi bo'lgan barcha fayllarni filtrlashingiz mumkin
DialogResult dr = ofd.ShowDialog ();
if (dr == DialogResult.OK) {
StreamReader sr = yangi StreamReader (ofd.FileName);
txtEx.Text = sr.ReadToEnd ();
sr.Close ();
}
Dialog oynasini saqlash
25
SaveFileDialog oynasi foydalanuvchiga saqlanadigan faylning manzili va nomini
tanlashga imkon berish uchun ishlatiladi.
Masalan, kod quyida keltirilgan.
SaveFileDialog sfdlg = yangi SaveFileDialog ();
sfdlg.Filter = "Matn fayllari (* .txt) | * .txt" ; // Bu erda siz ochmoqchi bo'lgan
barcha fayllarni filtrlashingiz mumkin
if (sfdlg.ShowDialog () == DialogResult.OK) {
// Oqimni yozish kodi bu erga o'tadi.
}
Tarkibni matn tahrirlovchisi ilovasida misol uchun StreamWriter klassi kabi
tegishli sinfdan foydalanib faylga saqlash mumkin .
Shrift va rangli dialog oynalari
FontDialogBox foydalanuvchiga shrift parametrlarini tanlashga imkon berish
uchun ishlatiladi. ColorDialogBox foydalanuvchiga rang tanlashga imkon berish
uchun ishlatiladi.
Masalan, kod quyida keltirilgan.
// Shriftli dialog
FontDialog fdlg = yangi FontDialog ();
fdlg.ShowDialog ();
txtEx.Font = fdlg.Font;
// Rangli dialog
ColorDialog cdlg = yangi ColorDialog ();
cdlg.ShowDialog ();
26
txtEx.ForeColor = cdlg.color;
Shrift Dialogi quyida keltirilgan.
Rang Dialogi quyida keltirilgan.
Ikkala holatda ham xususiyatlar va usullar mavjud. Ular tanlangan qiymatlarni
olish yoki dialog oynasi uchun qiymatlarni belgilash uchun ishlatilishi mumkin.
Custom dialog oynasi
Umumiy dialog oynalari foydali bo'lsa ham, ular domenga xos dialog oynalarining
talablarini qo'llab-quvvatlamaydi. Dasturchilar o'zlarining dialog oynalarini
yaratishlari kerak.
Keyingi bosqichlar Custom Dialog Box-ni yaratish jarayonini anglatadi
O'zingizning loyihangizga Solution Explorer-da sichqonchaning o'ng tugmachasini
bosish orqali shakl qo'shing, Qo'shish-ni tanlang va keyin Windows Form-ni
bosing.
Xususiyatlar oynasida FormBorderStyle xususiyatini FixedDialog-ga o'zgartiring.
Zarur bo'lganda, shaklning ko'rinishini sozlang.
Ushbu shaklga boshqaruv elementlarini qo'shing.
Windows formalaridagi C # MessageBox bu matn va harakat tugmachalari bilan
xabarni ko'rsatadi. Biz shuningdek sarlavha, belgi yoki yordam tugmalari kabi
qo'shimcha imkoniyatlarni qo'shish uchun MessageBox boshqaruvidan
foydalanishinmiz mumkinligini o‘rganamiz. Ushbu kur ishida CF va .NET-dan
27
foydalanib, WinForms ilovasida MessageBox-ni qanday ko'rsatishni bilib olamiz.
Shuningdek, biz xabar namunalarida dinamik ravishda MessageBox-dan qanday
foydalanishni o'rganamiz.
Dasturiy qism.
1: Visual studio yordanida Windows Forms ilovasini yaratamiz.
MessageBox-ning eng oddiy shakli - bu matn va OK tugmachasi bilan dialog. OK
tugmasini bosganingizda quti yo'qoladi.
Quyidagi kod parchasi oddiy xabarlar qutisini yaratadi.
1. string message = "Simple MessageBox" ;
2. satr nomi = "Sarlavha" ;
3. MessageBox.Show (xabar, sarlavha);
2: MessageBox-da YesNo va OKCancel kabi turli xil tugmalar birikmalari bo'lishi
mumkin. MessageBoxButtons ro'yxati MessageBox-da
ko'rsatiladigan tugmachalarni
anglatadi va quyidagi qiymatlarga ega.
OK
OK Cancel
28
Abort Retry Ignore
Yes No Cancel
Yes No
Retry Cancel
Quyidagi kod parchasi MessageBox-ni sarlavha va "Ha" va "yo'q" tugmachalarini
yaratadi. Bu odatiy MessageBox bo'lib, siz dasturni yopmoqchi bo'lganingizda
cancel qilishingiz mumkin. Agar "Ha" tugmachasi bosilsa, dastur yopiladi. Show
usuli DialogResult raqamini qaytaradi.
1. string message = "Ushbu oynani yopmoqchimisiz?" ;
2. satr nomi = "Oynani yopish" ;
3. MessageBoxButtons tugmalari = MessageBoxButtons.YesNo;
4. DialogResult natijasi = MessageBox.Show (xabar, sarlavha, tugmalar);
5. agar (natija == DialogResult.Yes) {
6. bu .Koplama ();
7. } else {
8. // Biror narsa qilmoq
9. }
29
MessageBox dialog oynasida belgini ko'rsatishi mumkin. MessageBoxIcons
raqamlash MessageBox-da ko'rsatiladigan belgini anglatadi va quyidagi
qiymatlarga ega.
Yo'q
Qo'l
Savol
Undov
Yulduzcha
To'xta
Xato
Ogohlantirish
Ma `lumot
Quyidagi kod parchasi sarlavha, tugmalar va belgi bilan MessageBox-ni yaratadi.
1. string message = "Ushbu operatsiyani bekor qilmoqchimisiz?" ;
2. satr nomi = "Oynani yopish" ;
3. MessageBoxButtons tugmalari = MessageBoxButtons.AbortRetryIgnore;
4. DialogResult natijasi = MessageBox.Show (xabar, sarlavha, tugmalar,
MessageBoxIcon.Warning);
5. agar (natija == DialogResult.Abort) {
6. bu .Koplama ();
7. }
8. elseif (natija == DialogResult.Retry) {
9. // Hech narsa qilmang
30
10. }
11. else {
12. // Biror narsa qilmoq
13. }
Bundan tashqari, biz xabarlar qutisiga standart tugmachani o'rnatishimiz mumkin.
Odatiy bo'lib, birinchi tugma standart tugma. Buning uchun
MessageBoxDefaultButton raqamlari ishlatiladi va quyidagi uchta qiymatga ega.
Tugma1
Tugma2
Tugma3
Quyidagi kod parchasi sarlavha, tugmalar va belgi bilan MessageBox-ni yaratadi
va ikkinchi tugmani standart tugma sifatida o'rnatadi.
1. string message = "Ushbu operatsiyani bekor qilmoqchimisiz?" ;
31
2. satr nomi = "Oynani yopish" ;
3. MessageBoxButtons tugmalari = MessageBoxButtons.AbortRetryIgnore;
4. DialogResult natijasi = MessageBox.Show (xabar, sarlavha, tugmalar,
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
5. agar (natija == DialogResult.Abort) {
6. bu .Koplama ();
7. }
8. elseif (natija == DialogResult.Retry) {
9. // Hech narsa qilmang
10. }
11. else {
12. // Biror narsa qilmoq
13. }
MessageBoxOptions ro'yxati turli xil variantlarni anglatadi va quyidagi
qiymatlarga ega.
32
ServiceNotification
DefaultDesktopOnly
RightAlign
RtlReading
Quyidagi kod parchasi turli xil parametrlarga ega MessageBox-ni yaratadi.
1. DialogResult natijasi = MessageBox.Show (xabar, sarlavha, tugmalar,
2. MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2,
MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading);
MessageBox-da qo'shimcha yordam tugmasi deb nomlangan qo'shimcha tugma
bo'lishi mumkin. Bu bizga yordam faylini ko'rsatishimiz kerak bo'lgan holatlarda
foydali. Quyidagi kod parchasi yordam tugmasi bilan MessageBox-ni yaratadi.
1. DialogResult natijasi = MessageBox.Show (xabar, sarlavha, tugmalar,
2. MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2,
3. MessageBoxOptions.RightAlign, to'g'ri );
33
Qo’shimcha ko’d va misollar.
1) Quyidagi kod misoli
MessageBox-
dan foydalanuvchini
TextBox-
da yo'qolgan
yozuv to'g'risida xabardor qilish uchun qanday foydalanishni ko'rsatib
beradi . Ushbu misol usulni mavjud shakldan ServerName nomli
TextBox-
dan
foydalanishni talab qiladi .
private
void
validateUserEntry
()
{
// Checks the value of the text.
if
(serverName.Text.Length == 0)
{
// Initializes the variables to pass to the MessageBox.Show method.
string
message =
"You did not enter a server name. Cancel this
operation?"
;
string
caption =
"Error Detected in Input"
;
MessageBoxButtons buttons = MessageBoxButtons.YesNo;
DialogResult result;
// Displays the MessageBox.
result = MessageBox.Show(message, caption, buttons);
if
(result == System.Windows.Forms.DialogResult.Yes)
{
// Closes the parent form.
this
.Close();
}
}
}
2) Quyidagi kod misoli foydalanuvchiga "ha" yoki "yo'q" deb savol berish va
javob asosida qaror qabul qilishni qanday ko'rsatishini ko'rsatadi.
private
void
Form1_FormClosing
(
object
sender, FormClosingEventArgs e)
{
const
string
message =
34
"Are you sure that you would like to close the form?"
;
const
string
caption =
"Form Closing"
;
var
result = MessageBox.Show(message, caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
// If the no button was pressed ...
if
(result == DialogResult.No)
{
// cancel the closure of the form.
e.Cancel =
true
;
}
}
35
Xulosa
Hozirgi zamonda yurtimizda Axborat Texnologiyalarini rivojlantirish yo‘lida juda
ko‘p ishlar amalga oshirilmoqda. Bu borada davlatimiz ko‘p ishlarni amalga
oshirmoqda. Xususan ko‘p joylarga dasturlash orqali ko‘p loyihalarni oson va
qulay bajarilyapti.Dasturlash chet davlatlarida anchagina rivojlangan masalan
Amerika,Malayziya, Koreya,Hindiston.Hozirgi kunda har-xil dasturlash tillari
mavjud C++,C#,Java, va hokozo. Shularning orasidan C# Windows muhitida
ishlaydigan dastur tuzish uchun qulay vosita bo‘lib,kompyuterda dastur yaratish
ishlarini avtomatlashtiradi, xatoliklarni kamaytiradi va dastur tuzuvchi ishini
kamaytiradi. C# dastur zamonaviy visual loyihalash texnalogiyasi asosida
obyektga yo‘naltirilgan dasturlash tili hisoblanadi.
Men bu kurs ishi davomida C# dasturlash tilida dialogs oynalari,ularning
turlari,dialog qutilar va ularning turlari ular bilan Visual studioda ishlash va
dialogs oynalari bilan C# dasturlash tilida foydalanish haqida ko‘nikmalarni oldim.
Aslida diolog oynalarini vazifasi nimada ekanligini bilim oldim. Bunda
message boxning vazifasi foydalanuvchi bilan aloqa qilish va undan bir nechta
shartlar so‘rashimiz yoki biror bir operatsiyaga ruxsat so‘rashimiz mumkin ekan.
Yana shuni ham aytib o‘tish kerakki biz bexosdan biror bir tugmani bosib
yuborishimiz mumkin shunda dastur bizdan so‘raydi agar biror bir o‘zgarishga
sabab bo‘ladigan action bo‘lsa. Masalan biz bexosdan x aniqroq qilib aytganda
chiqish tugmasini bosib yubordik shunda dastur avtomotik tarzda ish bo‘lib turgan
jarayonda bunday harakat noo‘rin ekanligini bilib bizga message boxni ekranga
chaqiradi va sizdan harakat to‘g‘rimi ekranni yopaymi deb so‘raydi siz yes ha yoki
yoq no tugmasini bosishingiz mumkin. Bu biz tuzgan dasturni ishlashini yanada
aniqroq ishlashga majbur qiladi va bu bizning yutug‘imiz bo‘ladi. Agar tasavur
qilib ko‘rsak biz wordda ish qilib o‘tiribmiz bexosdan x tugmasi bosilib ketdi
agarda message box yo‘q deb o‘ylasak bizning barcha mexnatimiz yo‘q bo‘lib
ketadi. Shuning uchun ham e‘tibor bergan bo‘lsangiz save qilmagan bo‘lsangiz
doim chiqishdan oldin save qilishingizni so‘raydi bu xavfsizlik va aniqlik uchun.
36
To‘g‘ri bu narsa bazi dasturlarda yo‘q bo‘lishi mumkin masalan nodepadda yo‘q
lekin u chiqib ketgan bo‘lsangiz ham save o‘zi avtomatik qilib qoyadi xotiradan
joy olib bu bir tomondan yaxshi bir tomondan esa yomon.
Yana bir bor takidlab o‘tish joizki men bu kurs ishi bajarish davomida o‘zim
uchun murakkab deb keraksiz deb o‘ylagan fikrlarim noto‘g‘ri ekanligini tushunib
yetdim. Dasturdagi barcha element va hodisalar bekordan emasligni va
hammasining o‘z joyi va vazifasi bor ekanligini yaxshi tushunib yetdim. O‘zimni
bilimlarimni yanda oshira oldim deb o‘ylayman..
37
Foydalangan adabiyotlar.
1. Герберт Шилдт. C# 4.0: полное руководство.:
Пер. с англ. М.: ООО ―И.Д. Вильямс‖,
2011. 1056 с.
2. Джозеф Албахари и Бен Албахари C# 6.0.
3. Справочник. Полное описание языка, 6-е изд.:
Пер. с англ. – М.: ООО ―И. Д. Вильямс‖, 2016. –
1040.
4. Пахомов Б. И. C# для начинающих. — СПб.:
БХВ-Петербург, 2014. — 432 с.
5. http://dastur.uz-Kompyuter dasrurlari va
kompyuterda dasturlashga oid forum,xabar va
yangiliklar.
6. C# bible for absolute begginners. 2014
7. C# full course in 40 hours. 2017
8. Object orentiring programming in C#. 2016
Do'stlaringiz bilan baham: |