35
١ زاد دا ا وادان درسو : و د ارس : ن ن اراﺋﻪ اي اراﺋﻪ اي اراﺋﻪ اي اراﺋﻪ اي از از از از: Iau-abadan-pc.blogfa.com

ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

Embed Size (px)

Citation preview

Page 1: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١

ا� ��دا��� �زاد ���دان وا��

���� و���:��و� درس� ��ن����ن :��رسا���د�� �

:::: از از از از ارائه ايارائه ايارائه ايارائه ايIau-abadan-pc.blogfa.com

Page 2: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢

#C معرفي زبان

بـا C#طراحان زبـان . فراهم شده است.NETاين زبان برپايه . توسط مايكروسافت ارائه شد 2000 درسال C#زبان

وجاوا و ناديده گرفتن برخي از امكانات تامل برانگيز ++C و Cداري مناسب از مزاياي زبان هايي نظير تاكيد والگوبر

در مـواردي . را طراحـي كـرده انـد شيء گرا وكم استفاده در هريك از اين زبان ها،يك زبان برنامه نويسي مـدرن و

ي گفته شده،حذف و يا با اعمال كنترل برخي از ويژگي هاي استفاده نشده ودرست درك نشده درهر يك از زبان ها

يك زبان آسان و ايمن براي اغلب پيـاده كننـدگان نـرم افـزار بـه وجـود آمـده هاي الزم برروي آن ها،زمينه ايجاد

مي توان مستقيما بـا اسـتفاده از اشـاره گرهـا عمليـات دلخـواه خـود را در حافظـه انجـاك ++C و Cمثال در .است

ولـي درصـورتي كـه . نوشتن برنامه هاي كامپيوتري با كارايي باال ضرورت اساسي دارد وجود توانايي فوق براي .دهند

.بيشماري گردد) Bugs(عملياتي اين چنين به درستي كنترل و هدايت نگردد،خود مي تواند باعث بروز مشكالت

NET.سكوي

يك محـيط كـاري ، در اصل NET.سكوي . را اعالم كرد NET. توسعه سكوي 2000مايكروسافت در سال شركت

سـكوي .جديد را براي سيستم عامل ويندوزفراهم مي سازد ) API(جديد است كه يك واسط برنامه نويسي كاربردي

.NET به عنـوان . بسياري از فناوري هاي پراكنده اي كه توسط مايكروسافت به وجود آمده بود در كنار هم قرار داد

ــات ــاي قطع ــرويس ه ــال ،س ــعه وب +COMمث ــاري توس ــيط ك ــان ASP ،مح ــت زب ــي XML،تثبي وطراح

،وتاكيد بر اينترنت همگي در SOAP،WSDL،UDDIشيءگرا،پشتيباني از پروتكل هاي جديد سرويس وب مثل

.يك معماري گنجانده شده است

: شامل چهار گروه از محصوالت استNET.سكوي . بسيار وسيع استNET.حوزه

مجموعـه اي ازابزارهـاي .VISUAL BASIC.NET،وC#.NET،J#.NETمجموعه اي ازبـان هـا از جملـه -1

.براي اجراي اشياي ايجاد شده)CLR=Common Language Runtime(توسعه،زبان مشترك زمان اجرا

.و غيرهSQL Server 2005،مثل NET.مجموعه اي از سرويس دهنده هاي -2

وب سرويس هاي اقتصادي-3

.ن هاي همراه وجعبه هاي بازيمثل تلف. فعال مي شوندNET. كه توسط PCدستگاه هاي غير -4

NET.محيط كاري

.NET معنايش اين اسـت كـه . مي كند نه تنها ازاستقالل زبان ها،بلكه ازجامعيت زبان ها نيزپشتيباني مايكروسافت

.مي توانيد از وراثت كالس ها،اداره كردن استثناها وامتيازچندريختي درزبان هاي مختلف استفاده كنيد

)CTS=Common Type System( كاررابا مشخصاتي به نام سيستم نوع مشترك،اينNET.محيط كاري

،شـيءاي ازكـالس خاصـي NET.به عنوان مثال،هرچيزي در .انجام مي دهد كه تمام قطعات بايد ازآن پيروي كنند

،delegates،واسط ها، مفهوم كلي كالس هااز CTS. مشتق مي شودobjectاست كه ازكالس ريشه

.ع مقدار پشتيباني مي كندانواع مرجع وانوا

است ) CLS=Common Language Specification( شامل مشخصات زبان مشتركNET.عالوه براين

Page 3: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٣

فـراهم NET. حداقل نيازهـا را بـراي CLS.زقوانين مورد نيازبراي جامعيت زبان را فراهم مي آوردكه مجموعه اي ا

ا به وجود مـي آورنـد كـه مـي تواننـد بـا يكـديگر كـار پيروي مي كنند،اشيايي ر CLSكامپايلرهايي كه از .مي كند

CLS،توسـط هـر زبـاني كـه از )FCL=Framework Class Library(كل كتابخانه كالس محيط كاري.كنند

.پيروي مي كند،قابل استفاده است

ي درباالي سيستم عامل قرار مي گيرد،كه مي تواند هرنسخه اي ازويندوز باشد،وشـامل تعـداد NET.محيط كاري

: شامل موارد زير استNET.محيط كاري .قطعه است

. استJScript.NET وC#،VB.NET، C++.NET چهار زبان رسمي -1

كه سكوي شيء گرايي براي ويندوز وكاربردهاي وب است كه تمام اين زبان هـا )CLR( اجراي مشترك نزبا-2

.در آن مشترك اند

.خوانده مي شود FCLتعدادي كتابخانه كالس مرتبط به هم كه به نام -3

:فناوري شيء ومفهوم شيءگرايي

مثـل مردم،حيوانات،گياهان،اتومبيـل ها،سـاختمان .هرچيزي كه دردنياي واقعي وجود دارد،شيء ناميـده مـي شـود

.انسان براساس اشيا فكر مي كند... .ها،كامپيوترها و

.اي مشتركي دارندهردو نوع شي چيزه.هي اشيا را به دودسته جاندار وبي جان تقسيم مي كنندگا

تـوپ (هستند وتمام ان ها رفتارهايي از خودشان نشان مـي دهنـد )رنگ ووزن -شكل-اندازه(آن ها داراي صفات مثل

...).اتومبيل ترمز مي كندو-بچه گريه مي كند-حركت مي كند

،نرم افزاررا براساس واژه هـايي كـه افـراد بـراي توصـيف )ODD=Object Oriented Design(طراحي شيءگرا

ازامتيازرابطه كـالس يـا رده اسـتفاده مـي كنـد كـه در .اشياي دنياي واقعي استفاده مي كنند،مدل سازي مي كنند

.اشيايي از يك كالس،ويژگي هاي يكساني دارندآن،

ODD از امتيازرابطه وراثت نيزاستفاده مي كند كه درآن،كالس هاي جديدي ازاشيا،با ويژگـي هـاي كـالس هـاي

شيء از كالس دانشجويان ارشـد ويژگـي هـاي كـالس كلـي تـر .گي هاي جديد ايجاد مي شوند موجود وافزودن ويژ

.دانشجويان را دارد اما وِيژگي هاي خاص خودش را نيزدارد

يعني امكاناتي در اين زبان فراهم آمده است كه مي تواند اشياي دنياي واقعي را . شي گرا هستند#Cزبان هايي مثل

OOP=Object Oriented(ويــسي درايــن زبــان ها،برنامــه نويــسي شــي گــرابرنامــه ن.مــدل ســازي نمايــد

Programming( زبان هايي مثل .نام داردC دز. است عمل گرا يسي دراين زبان ها و،رويه اي هستند،لذا برنامه نC

مـي ايجاد يا سازي نمونه ازآن اشيا است كه كالس واحد برنامه نويسي #Cدر . است تابعواحد برنامه نويسي

داده هـا هستند كه عمليات را پياده سازي مي كنندو شامل )Cمعادل توابع در (متدها شامل #Cكالس هاي .وندش

.هستند كه صفات را پياده سازي مي كنند

:كالس ها

هركالس شامل داده ها ومتدهايي است . به نام كالس ها تاكيد دارندانواع جديدي برروي ايجاد #Cبرنامه نويسان

قطعات داده اي كالس .دستكاري مي كنند وسرويس هايي را براي سرويس گيرندگان فراهم مي كنند كه داده ها را

قطعـات .به عنوان مثال كالس حساب بانكي شامل شـماره حـساب و موجـودي اسـت . مي نامند فيلدهاراصفات يا

Page 4: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٤

پـول ونمـايش مثال كالس حـساب بـانكي شـامل متـدهايي بـراي واريزوبرداشـت . مي نامند متدعملياتي كالس را

يعني همان طوركـه ازيـك نقـشه مـي .نسبت به اشيا،مثل نقشه ها براي ساختمانها هستند كالس ها .موجودي است

اشـيا و كـالس الگـويي بـراي سـاخت .ختمان تهيه كرد،ازيك كالس مي توان چند شي ايجـاد كـرد استوان چندين

ازه مي دهد كه سيستم هاي نرم افزاري آتي ازكـالس ايجاد نرم افزاربا استفاده ازكالس ها اج .استفاده از آن ها است

گروه هايي ازكالس ها مرتبط،به صورت قطعاتي بسته بندي مـي شـوند كـه دوبـاره قابـل . استفاده نمايند ها مجددا

.قابليت استفاده مجدد،كليد توسعه نرم افزارها درآينده است.استفاده اند

:Visual Studioمحيط كاري

Recentقـسمت . به صورتي كه درباال مشاهده مي كنيد مي باشـد Visual studio 2005صفحه شروع برنامه

Projects با كليك برروي هركدام ازآن . حاوي اطالعاتي راجع به پروژه هايي است كه اخيرا ايجاد يا اصالح شده اند

مـي توانيـد اطالعـاتي Getting Startedدرقسمت .ها مي توانيد آن ها رابازوتغييرات رادرموردآن ها اعمال كنيد

. وطريقه ايجاد برنامه هاي كاربردي درآن دريافت كنيد#Cكمكي درمورد

Page 5: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٥

پنجره اي كه . را انتخاب نماييدProject وسپس گزينه New به گزينه Fileبراي بازكردن پروژه اي جديد ازمنوي

:بازمي شود به صورت زيراست

را #Visual C بايد گزينه #C پروژه را تعيين كنيد كه براي پروژه هاي مي توانيد نوعProject typesدرقسمت

.انتخاب كنيد

كه تمامي برنامه هـايي كـه مـا مـي خـواهيم بنويـسيم درقالـب . شامل قالب هاي پروژه است Templatesقسمت

Windows Application مي باشد .

.يجاد پروژه را تعيين مي كند محل اLocationقسمت .نام پروژه را وارد مي كنيم Nameدربخش

Page 6: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٦

:هنگامي كه پروژه جديدي رابازمي كنيد پنجره زيرنمايان مي شود

:اين پنجره شامل بخش هايي است كه به معرفي بعضي ازآن ها مي پردازيم

:نوارمنو

:منوهاي پروژه است كه به اختصاربه كارايي آن ها اشاره مي كنيمنوارمنو شامل

.شامل فرمان هايي براي بازكردن،بستن،اضافه كردن وذخيره پروژه ها وچاپ داده هاي پروژه است:Fileمنوي

.براي ويرايش برنامه هاه مثل عمل كپي،حذف،انتخاب،خنثي كردن،جست وجو به كارمي رود:Edit منوي

.براي نمايش پنجره ها به كارمي رود: Viewمنوي

.وفايل هاي آن ها استبراي مديريت پروژه ها :Projectمنوي

.شامل فرمان هايي براي ترجمه برنامه ها است:Buildمنوي

.براي اشكال زدايي واجراي برنامه ها به كارمي رود: Debug منوي

.براي كاربا بانك هاي اطالعاتي به كارمي رود:Data منوي

.م استبراي چيدمان واصالح كنترل هاي فر:Format منوي

يابي به ابزارهاي بيشتراست كه با اسـتفاده ازآن هـا مـي تـوان محـيط ويـژوال اسـتديو را براي دست :Tools منوي

.سفارشي كرد

Page 7: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٧

.براي چيدمان ونمايش پنجره ها مي باشد:Window منوي

بـه كـارمي ... ،بررسي وضعيت پرسـش و براي ارسال پرسش هايي مستقيما به مايكروسافت :Community منوي

.رود

. كمكي درباره ويژوال استديو دات نت استشامل اطالعات:Help منوي

:نوارابزار

.فايل هاي پروژه رانمايش مي دهد:Solution Explorerپنجره مرورگرپروژه يا

وقتـي هـيچ پـروژه اي . را انتخاب كنيدView/Solution Explorerاگراين پنجره را مشاهده نمي كنيد ازمنوي

.ژه اي بازباشد،فايل هاي آن دراين بخش قابل مشاهده خواهد بودولي وقتي پرو.بازنباشد اين بخش خالي است

Page 8: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٨

):Properties(پنجره خواص

هريك ازكنترل هاي موجود درجعبـه ابـزاروهمچنين فـرم داراي خـواص هـستند كـه درپنجـره خـواص ظـاهرمي

نتـرل داراي خـواص هرك.رنـگ وموقعيـت -خواص اطالعاتي رادرباره فرم يا كنترل مشخص مي كند،مثل اندازه .شود

.مخصوص به خود است

Page 9: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٩

براي اضافه كردن .جعبه ابزارشامل كنترل هايي است تافرم هاي برنامه با استفاده ازآن ها طراحي شوند :كنترل ها

دراينجا به معرفي چند كنتـرل .آن ها به فرم آن ها رابا ماوس بكشيد ودرفرم رها كنيد يا روي آن دوبار كليك كنيد

:جعبه ابزاركنترل ها به شكل زيراست.برد بيشتري دربرنامه نويسي دارند مي پردازيمكه كار

:Buttonكنترل

چنانچه كاربربرروي اين كنترل كليك كند مي تواند بعضي ازفرمان هـا .كنترل دكمه فرمان را به فرم اضافه مي كند

.رااجرا كند

: CheckBoxكنترل

.كه انتخاب يا عدم انتخاب آن به عهده كاربراستگزينه اي به فرم اضافه مي كند

باشـد Trueاگرمقداراين كنتـرل برابـر .مشخص مي كند آيا كنترل انتخاب شده است يا خير :Checkedخاصيت

.كنترل انتخاب شده است

Page 10: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٠

:Labelكنترل

.براي نمايش متن غيرقايل ويرايش به كارمي رود

:Listboxكنترل

اين كنترل داراي خـواص ومتـدهايي .ندگزينه وانتخاب يك يا چند گزينه به كارمي رود ازاين كنترل براي نمايش چ

.است كه به چندتاي آن ها اشاره مي كنيم

.به صورت مرتب شده ظاهرشوند ياخيرListboxتعيين مي كند كه آيا گزينه هاي كنترل :Sortedخاصيت

:ربه كارمي رودتمام گزينه هاي ليستر ا حذف مي كند وبه صورت زي:Clearمتدlistbox1.items.clear() ;

:براي اضافه كردن گزينه اي به انتهاي ليست به كارمي رود وبه صورت زيراستفاده مي شود:Addمتد listbox1.items.add(item) ;

itemمقداري است كه به انتهاي ليست اضافه مي شود .

:RadioButtonكنترل

دريـك گـروه كنتـرل نمونـه ازايـن اگرچنـد .د كه كاربرمي تواند آن را انتخاب كنـد گزينه اي رابه فرم اضافه مي كن

مي توان تعيين كرد آيا كنترل Checkedخاصيت با استفاده از.قرارگيرند فقط يك گزينه را مي توان انتخاب كرد

:مثال دستورزيرراببينيد.انتخاب شده است يا خيرif(radiobutton1.checked = = true)

رات دستو;

.براي دريافت و ويرايش متن به كارمي رود:TextBoxكنترل

اگركاربركاراكتري .تعيين مي كند آيا اطالعات به صورت كلمه عبوردريافت شوند يا خير :PasswordCharخاصيت

رادراين خاصيت وارد كند،كاراكترهاي واردشده توسط كـاربر پنهـان شـده وكـاراكتري نمـايش داده مـي شـود كـه

.اين خاصيت واردكرده استكاربردر

.تعيين مي كند آيا كنترل مي تواند چند سطراطالعات رادريافت كند يا خير: Multilineخاصيت

:GroupBoxكنترل

اگربخواهيد چند كنترل دريـك گـروه قراربگيرنـد بايـد بـه يـك كنتـرل .اين كنترل براي ايجاد گروه به كارمي رود

GroupBoxاضافه شوند .

:ه كليدرويدادهاي صفح

:اين رويدادها عبارتند از.تعدادي ازاين رويدادها مربوط به صفحه كليد است.گفتيم كه هركنترل چندرويداد دارد

: KeyPressرويداد

-وقتــي كاربريــك ازكليــدهاي حــروف بــزرگ.زمــاني كــه كاربركليــدي را فــشاردهد ايــن رويــداد اتفــاق مــي افتــد

ولي اگركاربركليدهاي مكـان نمـا . اين رويداد رخ مي دهد رافشاردهد وغيره Enter،عالئم نقطه گذاري، كوچك،اعداد

به صورت Keypressرويداد . دارند،اين رويداد رخ نمي دهد 31تا 0وكليدهايي رافشاردهد كه كداسكي آن ها بين

:زيربه كارمي رود

Page 11: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١١

private void نام كنترل_KeyPress(object sender, KeyPressEventArgs e) {

كه بايد بعد ازفشردن كليد اجرا شونددستوراتي ;

}

ساختاري اسـت كـه اطالعـات كليـد فـشرده شـده درآن eكنترل سازنده اين كنترل وپارمتر senderدراين رويداد،

.قرارمي گيرد

Keypress رويداد eجدول مربوط به ساختار

هدف گزينه

. را خالي مي كندeمحتويات ()emptyمتد

. را تعيين مي كندKeyPress گرداننده رويداد اين خاصيت Handleخاصيت

.دراين خاصيت كاراكترفشرده شده قرار مي گيرد KeyCharخاصيت

:KeyDownرويداد

اين .اگركاربر كليدها مكان نما را فشاردهد اين روداد رخ مي دهد.وقتي كاربركليدي فشاردهد اين رويداد رخ مي دهد

:رويداد به صورت زيربه كارمي رودprivate void نام كنترل_KeyDown(object sender, KeyEventArgs e) {

; دستوراتي كه بايد بعد ازفشردن كليد اجرا شوند}

ساختاري را تعيين مـي كنـد كـه e كنترلي را مشخص مي كند كه اين رويداد درآن رخ مي دهد و senderپارامتر

.اطالعات كليد فشرده شده درآن قرارمي گيرد

:KeyUpرويداد

پارامترهـاي ايـن رويـداد هماننـد رويـداد .هنگامي كه كاربركليد فشرده شده را رها كنـد،اين رويـداد رخ مـي دهـد

KeyDownاستفاده مي شود .

KeyDown رويداد eجدول مربوط به ساختار

هدف گزينه

. رافشارداده است يا خيرAltتعيين مي كند آيا كاربركليد Altخاصيت

. را مشخص مي كندKeyDownننده رويداد گردا Handleخاصيت

. را فشرده است يا خيرCtrlتعيين مي كند آيا كاربركليد Controlخاصيت

.كداسكي كاراكترفشرده شده را تعيين مي كند KeyCodeخاصيت

.مقداركاراكترفشرده شده را تعيين مي كند KeyValueخاصيت

. را فشرده است يا خيرShiftتعيين مي كند آيا كاربركليد Shiftخاصيت

Page 12: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٢

كليـك كنيـدو بـه رويـداد Eventروي گزينه )Properties(براي نوشتن كد دراين رويدادها بايد درپنجره خواص

.مورد نظررفته و دستورات را درآن بنويسيد

Page 13: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٣

:# Cفضاهي نام در

كاربرد فضاي اسمي

System

شامل انواع داده پايه است كه بوسيله همـه برنامـه هـا

آن كـالس هـاي استثنا،خـصوصياتي .استفاده مي شود

و كــالس هــاي Mathازپــيش تعريــف شــده،كتابخانه

.مديريت محيط برنامه را نيزشامل مي شودSystem.Collection

System.Collection.Specialized

System.Collection.Generic

واسط ها و كالس هاي استفاده شـده حهـت مـديريت

ــايي ازاشــيا ــا شــامل .كلكــسيون ه ــن كلكــسيون ه اي

Arraylist،Stack، HashTableهستند... و.

Data.System

SqlClient.Data.System ClientOracle.Data.System

OleDB.System

Odbc.Data.System

ــاه كــال ــات پايگ ــراي عملي ــورد اســتفاده ب ــاي م س ه

فضاهاي نـامي سـرويس گيرنـده ).NET.ADO(داده

SqlServer,Oracle را پـــشتيباني مـــي كننـــدو

Oledb,Odbc داده مورد اسـتفاده را تعريـف اتصال

.مي كند

System.Diagnoatics

كالس هـايي را شـامل اسـت كـه مـي تواننـد اجـراي

سيـستم وشـمارنده هـاي Logبرنامه،اشكال يابي،كاربا

.بهره وري را پيگيري كنندDrawing.System

D2Drawing.Drawing.System

Printing.Drawing.System

Text.Drawing.Syestem

ــراي ــي راب ــاي گرافيك ــي +GDIعملكرده ــراهم م ف

اين فضاهاي نامي يك كـالس ترسـيم بـه خـوبي .كند

fonts,pens,geometeric shapes,brushes را

.ددربردارن

System.Globalization

ــاريخ ــا روش مقــداردهي ت كــالس هــايي در ارتبــاط ب

ها،واحد پول وسمبل هاي نمايشي را تحت تـاثير قـرار

.مي دهد

Forms.Windows.System

ــاي ــه ه ــراي ايجــاد برنام ــه ب ــايي ك GUIكــالس ه

.ميزكارويندوز استفاده مي شوند

ايـــــــن كنتـــــــرل هـــــــا عبـــــــارت انـــــــد

Buttons,atagridD,TextBox,ListBox:از

Page 14: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٤

:انواع داده اوليه

در جـدول زيرآمـده NET.آمده اند به همرا معادل آن ها درمشخصات مشترك زبان #C انواع داده اوليه اي كه در

مـي تواننـد # C تضمين مي كندكه اشياي ايجاد شـده در NET. با انواع #Cمعادل بودن انواع داده اوليه .است

اندازه #C در ++Cبرخالف .هرنوع داراي اندازه خاصي است . به كاررود VB.NET مثل NET.درهرزبان سازگاربا

.معادل است NET. درint32 هميشه چهار بايت است،زيرا با intنوع

#Cانواع مقدار اوليه در

NET.معادل اندازه به بايت نوع

byte 1 Byte

char 1 Char

Bool 1 Boolean

int 4 Int32

Float 4 Single

double 8 Double

decimal 8 Decimal

:متغيرها

متغيرها نامي براي كلمات حافظه اند كه داده ها درآن ها قرار مي گيرند ومحتويـات آن هـا ممكـن اسـت درطـول

ت لذا متغيرها امكان نامگذاري براي كلما.براي مراجعه به متغيرها ازنامشان استفاده مي شود.اجراي برنامه تغيير كند

وزيـرخط ارقـام ،Z تـا A يـا z تـا aبراي نامگذاري متغيرها مي توان تركيبي ازحـروف .حافظه را فراهم مي كنند

)Underline( كـاراكتر 31نام متغيرمي تواند با هرطولي باشـد ولـي .ولي اولين كاراكتر نبايد عدد باشد .استفاده كرد

.اول آن مورداستفاده قرارمي گيرد

:مي مجازوغيرمجازآمده استدرجدول زيربرخي ازاسا

اسامي غيرمجاز اسامي مجازcount 1test

test23 high!there

sum grade:1 S_1 .pcx

:12,34 0/.-,ه*

:شكل كلي تعريف متغير بدين صورت است

نوع داده نام متغير;

int x ;

float m ,n ;

char ch1, ch2, ch3 ;

Page 15: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٥

double d1 ;

:ه متغيرها به سه روش صورت مي گيردمقداردادن ب

متغير) تععين نوع (هنگام تعريف -1

(=)پس ازتعريف نوع متغير وبا دستور انتساب-2

دستورات ورودي-3

:مثالint x,y =5 ;

float p= 3.14 ;

char ch1='a' , ch2='m' ;

:د توجه داشت باي#C نكاتي كه هنگام نوشتن برنامه در

C# يعني درنام گـذاري متغيرهـا وكـالس هـا بـين حـروف بـزرگ . نسبت به حروف بزرگ و كوچك حساس است

ــام .وكوچــك تفــاوت وجــود دارد ــا ن ــام sumمــثال متغيــري ب ــه ن ــا متغيــري ب همــه .يكــسان نيــست Sum ب

مـي نوشـته */تتوضـيحا /*يـا //توضـيحات :توضيحات بـه صـورت . ختم مي شوند ; به )Statements(دستورات

} {تمـامي دسـتورات بـين .خاتمه مي يابند{ با و آغازشده } كالس ها ومتدها،دستورات شرطي وحلقه ها با .شوند

.يك بلوك را مي سازند

:كاراكترهاي فرمت بندي براي خروجي به شرح زير هستند

\n: يدمعادل زدن يكباركل(مكان نما را به ابتداي خط بعدي قرار مي دهد. خط جديدEnter عمل مي كند.(

\t: معادل كليد (مكان نما را به مكان توقف بعدي مي برد.جابه جايي افقيTabعمل مي كند .(

\r : خط بعد نمي بردمكان نما را به ابتداي سطرفعلي مي برد،يعني به .ابتداي سطر.

:)دستورات شرطي(ساختارهاي تصميم

ا شوند ويا تعدادي ازدستورات اجرا نشوند از ساختارهاي تـصميم اگربخواهيم تحت شرايطي تعدادي ازدستورات اجر

را اجرا رده ودرصورت درست بودن شرط ،مجموعه اي ازدستورات كاين ساختارها شرطي را تست .استفاده مي كنيم

.switch وif: وجود دارند عبارتند از#C ساختارهاي تصميم كه در.مي كنند

:ifساختار

: بل اجرا استاين ساختار به دوروش قا

: روش اول : روش دوم

if)شرط( } if)شرط(}

1دستور ; 1دستور ;

2دستور ; 2دستور ;

...}

nدستور ;

} else {

e1دستور ;

Page 16: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٦

e2دستور ;

enدستور ;

}

:مثالIf(a<b)

max=a;

else

max=b;

: تودرتوifساختار

بــراي تــست شــرط هــاي متعــددي اســتفاده كنيم،بايــد آن هــا رابــه صــورت تودرتــو بــه ifاگربخــواهيم ازدســتور

لكـه ازخوانـايي برنامـه مـي ،ب به صورت تودرتو نه تنها موجب طـوالني شـدن برنامـه مـي شـود ifكاربرد.كارببريم

:هاي تودرتو به كاررود وميزان خوانايي برنامه راباال بردif مي تواند به جاي else ifساختار.كاهد

if )1 شرط(;

1 دستور ;

else if)2شرط (

2 دستور ;

...

n( else if شرط (

n دستور ;

else

elseدستور ;

انتقـال مـي يابـد elseدستوربعد از اجرا مي شود وكنترل برنامه به 1 درست باشد دستور1دراين ساختاراگرشرط

elseدرست نباشـد دسـتور چنانچه هيچ يك ازشرط ها . اجرا مي شود 2 درست باشد دستور 2 وگرنه چنانچه شرط

.اجرا مي شود

.برنامه اي كه عدد از ورودي گرفته وآن را تعيين عالمت مي كند:مثال

. نياز استbutton و lable وtextbox برنامه به كنترل هايدراين

Page 17: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٧

. مي نويسيمbuttonكد برنامه را در int a=Convert.ToInt32(textBox1.Text);

if (a> 0)

{label1.Text = "positive";

}else if (a == 0)

{label1.Text = "Zero";

}else

label1.Text = "negative";

:Switchساختار تصميم

ازاين ساختاربراي تصميم گيري هاي چندگانه براساس . يكي ازساختارهاي جالب ومهم است switchساختارتصميم

: به صورت زيراستswitchساختار.مقاديرمختلف يك عبارت استفاده مي شود

switch)عبارت(}

case 1مقدار :

1 دستورات ; break ;

case 2مقدار ;

2 دستورات ;break ;

default :

n دستورات ;break ;

ارزيابي ومقدارآن تعيين مـي switchنحوه عملكرد اين ساختار بدين صورت است كه ابتدا عبارت موجود درمقابل

كه بعدازآن ها قرارداردكنترل برنامـه breakدستور. اجرا مي شوند 1دستورات برابربود 1مقداربا اگراين مقدار .شود

اجرا 2دستورات مقايسه مي شود اگر برابر بود 2مقدار برابرنبود با 1مقداراگربا . خارج مي كند switchرا ازساختار

اجـرا شـده وكنتـل nنبود،دسـتورات وغيـره برابر 2مقـادير و1مقـادير چنانچه مقدارعبارت بـاهيچ يـك از .مي شوند

. خارج مي شودswitchازساختار

:switchنكاتي درمورد ساختار

درايـن صـورت اگرعبـارت محاسـبه شـده بـا هـيچ كـدام . باشـد default مي تواند فاقد بخش switchساختار-1

.ازمقاديربرابرنبود هيچ كدام ازدستورات اجرا نمي شوند

.نمي توانند با هم مساوي باشندswich هاي caseمقاديرموجود در-2

مي توان عبارت منطقي يا رابطه اي رامـورد بررسـي if دراين است كه درساختار switch و ifيكي ازتفاوت هاي -3

. مقاديرمورد بررسي قرارمي گيردمساوي بودن فقط swichقرارداد ولي در ساختار

. التين آن را چاپ كندلعادبرنامه اي كه عددي يك رقمي از ورودي دريافت كرده و م:مثال

Page 18: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٨

. مي نويسيمbuttonدستورات زيررا درون

int a = Convert.ToInt32(textBox1.Text);

switch(a){

case 0:

label1.Text="zero";

break;

case 1:

label1.Text = "one";

break;

case 2:

label1.Text="Two";

break;

case 3:

label1.Text="three";

break;

}

:ساختارهاي تكرار

عدد صحيح ومحاسبه مجمـوع آن 10 دانشجو،خواندن 10امي ندن اس مثل خوا .كارها تكراري است ماهيت بسياري از

حلقـه . اسـتفاده مـي شـود تكرار حلقه هايبراي انجام كارهايي كه ماهيت آن ها تكراري است ازامكاناتي به نام .ها

.foreachو doوwhile وfor:عبارتند از#Cهاي تكراردر

:forساختارتكرار

يكي ازامكانات ايجاد حلقه است ومعموال درحالتي به كارمي رود كه تعداد دفعات تكرارحلقه ازقبـل forساختارتكرار

يـا شـمارنده ايـن متغيـر .دراين ساختارمتغيري وجود دارد كه تعداد دفعات تكراررا كنترل مـي كنـد .مشخص باشد

انديس حلقـه داراي مقداراوليـه . م تواند عددي صحيح ،اعشاري وكاراكتري باشد انديس حلقه . حلقه نام دارد انديس

يكـي ديگرازاجـزاي حلقـه . نـام دارد گام حركت حلقه است ودرهرباراجراي حلقه مقداري به آن اضافه مي شود كه

رت به صو forدستور.شرط حلقه مشخص مي كند كه دستورات داخل حلقه تاكي بايد اجرا شوند. استشرط حلقه

:زير به كارمي رود

for ) مقداراوليه انديس ; شرط حلقه;گام حركت(}

1 دستور ;

Page 19: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

١٩

2 دستور;

...

n دستور ;

}

for جدول ضرب با استفاده از حلقه نوشتن:مثال

: مي نويسيمbutton نياز دارد كه كدها را درون buttonويك كنترل lable اين برنامه به يك كنترلfor (int i = 1; i <= 10; i++)

{

for (int j = 1; j <= 10; j++)

{

label1.Text += Convert.ToString(i * j )+ ' ' + ' '

}

label1.Text +="\n";

} :whileساختارتكرار

:صورت كلي استفاده ازاين دستوربه صورت زيراست

while) شرط(}

1 دستور ;

2 دستور;

...

n دستور ;

}

اگرشـرط داراي ارزش درسـتي .تي كه اجراي برنامه به اين دستوررسيد،شرط حلقه تست مـي شـود دراين ساختاروق

براي اين كه حلقه خاتمه يابد بايـد شـرط .باشد دستورات حلقه اجرا مي شوند وگرنه كنترل ازبرنامه خارج مي شود

ايجاد مـي بي نهايت حلقه تكرار )هيچ گاه نقض نشود ( اگرهميشه شرط حلقه درست باشد .داخل حلقه نقض شود

شود

:آرايه ها

استفاده مي كرديم كه هركـدام يـك خانـه …,int,double,char تاكنون براي ذخيره داده ها ازمتغيرهايي ازنوع

مـثال فـرض كنـيم .اما هميشه تعريف اين گونه متغيرها جوابگوي نيازبرنامه نويسي نيست .ازحافظه رااشغال مي كرد

متغيرازنـوع صـحيح تعريـف كنـيم 10يك روش ايـن اسـت كـه .ظه ذخيره كنيم عدد صحيح رادرحاف 10بخواهيم

عـدد ذخيـره 500 عدد مناسـب باشـد ولـي اگربخـواهيم 10شايداين روش براي .وهرمقداررا دريك متغيرقراردهيم

درستي است؟دراين گونـه مواردبايـد ازمتغيرهـاي ديگـري بـه نـام متغيردربرنامه كارمعقول و 500كنيم،آيا تعريف

عدد فقط يك نام انتخاب كرده وهرمقداررا يك 500دراين روش براي . استفاده كنيم آرايهيا انديس دار متغيرهاي

همنوع اسـت،يا مجموعـه اي اسمي براي چند متغيراست :پس مي توان آرايه را اينگونه تعريف كرد .مي ناميم عنصر

. ازچند كميت كه داراي يك نام باشنداست

Page 20: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٠

وبه طوركلي آرايه داراي آرايه دوبعدي ،آرايه هاي داراي دو انديس را آرايه يك بعدي آرايه هايي با يك انديس را

n آرايه هاي انديس راn زبـان .نامگذاري آرايه ازقانون نامگذاري متغيرهـا پيـروي مـي كنـد .مي گويند بعديC#

. اسـتفاده نمـود 4عنصررا نمي توان با انديس بزرگتـراز 5 با طول aيعني آرايه اي به نام .مي كندحدود آرايه راكنترل

. عنصري را نشان مي دهد5شكل زير نماي كلي يك آرايه

X[0] X[1] X[2] X[3] X[4]

:آرايه هاي يك بعدي

تخصيص حافظه به آرايه-2 اعالن آرايه -1:تعريف ارايه دردومرحله صورت مي گيرد

.دراعالن آرايه نوع عناصررا مشخص مي كنيم ولي درتخصيص حافظه به آرايه تعداد عناصرآرايه مشخص مي شود

رد پس تعريف آرايه به صـورت زيرمـي استفاده ك new جديد بايد از كلمه كليدي براي ايجاد هرنمونه #Cچون در

:شود

نوع آرايه[]آرايه = new نوع آرايه ]تعداد عناصر[ ;int [] x = new int [5];

:مقداردهي اوليه به آرايه

براي مقداردهي آرايه هنگام تعريف به صورت زيرعمل .ك ازعناصرآن قرارمي گيرديرنگام ايجاد آرايه مقداراوليه درهه

:مي كنيم

نوع آرايه[]نام = new نوع ]طول آرايه[} قاديرم {;int [] a= new int [5] {1,4,5,6,8} ;

درمقداردهي اوليه آرايه تعداد مقاديربايد .مقاديري كه براي هرعنصرآرايه تعيين مي شود با كاما ازهم جدا مي گردند

.مايش مي دهدشكل زيرمقداردهي به آرايه را ن.دقيقا برابربا تعداد عناصرآرايه باشد

8 6 5 4 1 X[0] X[1] X[2] X[3] X[4]

:دستيابي به عناصرآرايه

:براي دستيابي به عناصرآرايه به صورت زيرعمل مي شود

نام آرايه]انديس آرايه; [a[2]= 5 ;

.انديس آرايه ازصفرشروع مي شود.آرايه شماره عنصري است كه بايد دستيابي شودانديس

. نمايش مي دهدLabelعدد درآرايه قرارمي دهد ودريك كنترل 10برنامه اي كه :مثال

. مي نويسيمForm_Loadكدهاي زيررا دررويداد .نيازدارد Labelاين برنامه به يك كنترل int[] a = new int[10];

label1.Text = "";

for (int i = 0; i < 10; i++)

{

a[i] = i + 1;

label1.Text += a[i].ToString() + "\n";

}

Page 21: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢١

: چند بعدي هايآرايه

است،به عنوان مثال آرايه دوبعدي دوانديس دارد وآرايه سه بعدي داراي سه آرايه چند بعدي داراي چند انديس

:زيراستتعريف آرايه چند بعدي به صورت .انديس است

نوع آرايه ,] ... , [نام آرايه = new نوع آرايه ]1 طول بعد , 2 طول بعد , ..., nطول بعد [ ;

:به عنوان مثال دستورات زيررا درنظربگيريدint [,] k = new int [3.5] ;

float [,,] m= new float [3,5,7] ;

ستون است و نوع عناصرآن عدد صـحيح 5 سطرو 3راي تعريف مي كند كه دا kدستوراول يك آرايه دو بعدي با نام

ارتفاع 7 ستون و 3 سطر 5 تعريف مي كند كه داراي float ازنوع mدستور دوم يك آرايه سه بعدي به نام .مي باشد

.مي باشد

دراين روش ابتدا كليه عناصـرموجود درسـطراول سـپس تمـام .عناصرآرايه به صورت سطري ذخيره مي شوند #Cدر

.درحافظه ذخيره مي شود... وم وعناصردرسطرد

:مقداردهي اوليه به آرايه هاي چند بعدي

:شكل كليد مقداردادن به آرايه به اين صورت است.هنگام تعريف آرايه چندبعدي مي توان به عناصرآن مقدارداد

نوع آرايه[,,] نام آرايه = ] 1 تعداد عناصر,2 تعداد عناصربعد, nتعداد عناصر بعد[=}مقادير{ ;

int [,] a= new int[2,3]={1,2,3,4,5,6} ;

: تعريف كرده مقاديرآن را مطابق شكل زيرپرمي كند2*3 اين دستوريك آرايهa

3 2 1 6 5 4

: هاي چند بعديدستيابي به عناصرآرايه

:براي دستيابي به آرايه هاي چند بعدي مي توان به صورت زيرعمل كرد

نام آرايه]1 انديس بعد ,2 انديس بعد , ..., nانديس بعد [ ;

.انديس ابعاد آرايه ازصفرشروع مي شودint x = a[3,4] ;

. قرارمي دهدx را درمتغير4وستون 3اين دستورمقدارعنصرسطر

بـراي نمـايش جـدول ضـرب labelاين برنامه به يـك كنتـرل .برنامه جدول ضرب با استفاده ازآرايه دوبعدي :مثال

. مي نويسيمForm_Loadاد كدها را درون رويد.نيازداردint [,] a = new int [10,10] ;

label1.Text="";

for(int i=0 ; i < 10 ; i++)

{

for(int j= 0 ;j<10; j++ )

{

a[ i ,j ] = ( i+1 )* ( j + 1 ) ;

label1.Text+= a [ i,j].ToString()+" " ;

Page 22: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٢

}

label1.Text += "\n"; ;

} :مرتب سازي عناصر آرايه

و يا از بزرگ بـه )ترتيب صعودي (ر از مرتب سازي ليست،قرار دادن عناصر آن ها به ترتيب از كوچك به بزرگ منظو

.است) ترتيب نزولي(كوچك

list(1) <= list(2) <= … list(n) ترتيب صعودي

list(1) >= list(2) >= … list(n) ترتيب نزولي

ن عناصر ليسا، كوچك ترين عنصر ليست پيدا شده جاي آن با در مرتب سازي به اين صورت عمل مي شود كه در بي

از محل دوم ليست به بعد كوچك ترين عنصر ليست پيدا شده جاي در مرحله بعد .عنصر اول ليست عوض مي شود

.اين روند تا مرتب سازي كام ليست ادامه مي يابد.آن با عنصر دوم عوض مي شود

:روند مرتب سازي به صورت زير است

10 10 10 10 50

20 20 20 60 60

33 33 33 33 33

50 60 60 20 20

60 50 50 50 10

شروع 1مرحله 2مرحله 3مرحله 4مرحله

. را خوانده و آن ها را مرتب مي كند عدد5برنامه اي كه : مثال

. صورت زير استشكل برنامه به. ويك ليست نيازمند داردbutton،يك كنترل textboxاين برنامه به يك كنترل

آرايـه را Sortاين برنامه از طريق تكست باكس مقادير را به ارايه اضافه مي كند و با كليـك كـردن بـرروي دكمـه

.مرتب و درليست نمايش مي دهد

. را به صورت سراسري تعريف مي كنيمi و متغير ابتدا ارايهint[] a = new int[5];

Page 23: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٣

int i = 0;

: مي نويسيمSortه كدهاي زير را درون دكمint temp = 0;

listBox1.Items.Clear();

for (int i = 0; i < 5; i++)

{

for (int j = 0; j < 5; j++)

{

if (a[i] < a[j])

{

temp = a[i];

a[i] = a[j];

a[j] = temp;

}

}

}

for (int i = 0; i < 10; i++)

{

listBox1.Items.Add(a[i].ToString());

}

} : تكست باكس مي نويسيمKeyPressكدهاي زير را درون رويداد

if (e.KeyChar == '\r')

{

a[i] = Convert.ToInt32(textBox1.Text);

i++;

if (i < 5)

{

textBox1.Text = "";

}

else

button1.Enabled = true;

:توابع

:به اين صورت است#C نحوه تعريف تابع درزبان

نام نوع تابع) مان هاآرگو(

سطح دسترسي

{

دستورات ;

}

:دونع سطح دسترسي مي توان تعريف كرد.قواعد نامگذاري توابع ازقواعد نامگذاري متغيرها پيروي مي كند

Page 24: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٤

Public )متـدها معمـوال .محدوديتي دردستيابي آن وجود ندارد ودرخارج ازكـالس قابـل اسـتفاده اسـت :)عمومي

.رسي تعريف مي شوند تا درخارج ازكالس قابل استفاده باشندسطح دستوخواص با اين

Private) اعضايي با اين سطح دستياب فقـط درداخـل همـان كـالس قابـل اسـتفاده وشـناخته شـده ): خصوصي

درهنگام استفاده ازتابع مي توان اطالعاتي را بـه آن .معموال فيلدها وثوابت با اين سطح دستيابي معرفي مي شوند .اند

اگرتابع داراي چند آرگومان باشد آن ها را با كاما . گويند وداخل پرانتزقرارمي گيرند آرگوماناين اطالعات را .فرستاد

).وجود آرگومان اجباري نيست(تابع مي تواند فاقد آرگومان باشد.ازهم جدا مي كنند

:مثالprivate void a

{

messagebox.show("Hello");

}

ع براي بزرگتر كردن، تغييراندازه فـرم وبـه دسـت آوردن مجمـوع دوعـدد اسـتفاده مـي برنامه اي كه ازسه تاب :مثال

. استفاده مي كندtextbox ودو كنترل button كنترل 3اين برنامه از .كند

:شكل فرم اين برنامه به اين شكل است

مـي ;()InitializeComponentزيـر نوشـته form load درقسمت ابع استو تمرحله تعريفرا كه كدهاي زير

()private void biger:نويسيم

{

this.height += 200;

this.width += 200;

}

private void changesize(int x, int y)

{

this.Height = x;

this.Width = y;

}

private int sum (int a,int b)

{

int z=a+b ;

return z ;

Page 25: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٥

}

: را درآن مي نويسيم button تابع كدهاي هرفراخوانيحال براي

:بزرگتر button كدbiger();

: تغييراندازه مي نويسيمbuttonكد زيررا در changesize(Convert.ToInt16(textBox1.Text),Convert.ToInt16

(textBox2.Text)); : مجموع مي نويسيمbuttonكد زيررا در

int c = sum(Convert.ToInt16(textBox1.Text)

,Convert.ToInt16(textBox2.Text));

MessageBox.Show(c.Convert.ToString()); :توليد اعداد تصادفي

: تعريف كردRandomبراي توليد اعداد تصادفي مي توان ازمتغيري ازنوع

;()new Random = نام متغيرRandom

;() Random a= new random:مثال

. را تعيريف مي كند كه با آن مي توان عددي تصادفي ايجاد كردaاين دستورمتغيري به نام

:براي ايجاد عدد تصادفي بعدي به كارمي رود وبه اين صورت استفاده مي شود : Nextمتد

نام متغير.Next)ايجاد مي شودي كه حداكثرعدد(; a.Next(10) ;

حداقل عدد توليد شده a.next(1,11) در اين متد حداكثروحداقل عددرا نيز تعيين كرد مثال به دستور

. است10وحداكثرعددي كه توليد مي شود 1

:Randomنوشتن برنامه يك تاس با كمك :مثال

كدهاي اين برنامـه را درون .نياز دارد) انداختن تاسبراي(د تصادفيبراي توليد عدbutton اين برنامه به يك كنترل

: مي نويسيمbuttonكنترل Random a= new Random();

int m = a.Next(1,7);

MessageBox.Show(" شما تاس َشماره "+" "+ m.ToString());

:#Cكنترل هاي پيشرفته در

مي خواهيمدراين قسمت.آشنا شديدlabel , textbox , button در مثال هاي قبل با كاربرد اكثركنترل ها مثل

: ديگربپردازيمبه معرفي چند كنترل

:ProgressBarكنترل

ازاين كنترل مي توان براي نمايش درجه حرارت،سـطح .اين كنترل براي نمايش درصد پيشرفت كاراستفاده مي شود

: ازخواص ومتدهاي اين كنترل عبارتست ازبرخي.آب وميزان انجام عكمليات گزارش گيري استفاده كرد

. كم ترين مقداركنترل را مشخص مي كند:Minimum خاصيت

Page 26: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٦

.بيشترين مقداركنترل راتعيين مي كند : Maximumخاصيت

.گام افزايش پيشرفت كاررا تعيين مي كند : Stepخاصيت

.مقدارفعلي پيشرفت كاررا تعيين مي كند : Valueخاصيت

: رااضافه مي كند وبه صورت زيربه كارمي رودValueمقدارخاصيت : Incrementمتد controlname.increment(value)

value مقداري است كه بايد به خاصيت value اضافه شود .

:TrackBarكنترل

مي رود اين كنترل ازنوارلغزنده ا ي تشكيل شده است كه كاربرمي تواند آن رابين دونقطه حركت دهد وزماني به كار

برخـي .كه كاربربخواهد مقداري راازيك محدوده مشخص انتخاب كند كه مقدارجابـه جـايي را بـه كاربرنـشان دهـد

:ازخواص اين كنترل به شرح زيراست

درحالت پيش فرض كنترل افقـي اسـت .ين مي كند كه كنترل عمودي باشد يا افقي تعي:Orientation خاصيت

. استHorizontalچون مقداراين خاصيت برابر

مشخص مي كنـد وقتـي نوارلغزنـده بـا فاصـله زيـادي حركـت مـي كنـد چقدربـه : Largechangedخاصيت

. اضافه يا ازآن كم شودValueمقدار

مـشخص مـي كنـد وقتـي نوارلغرنـده بـا فاصـله كمـي حركـت مـي كنـد چقدربـه :Smallchangedخاصيت

.افه يا ازآن كم شوداض Valueمقدار

به كارمي رود وبه صـورت زيراسـتفاده Minimum و Maximumعيين مقاديرخواص براي ت : Setrangeمتد

:مي شودControlName.Setrange(minvalue,maxvalue) ;

minvalueكمتـــرين مقداررامـــشخص مـــي كنـــدو maxvalueمـــثال . مقـــدارراتعيين مـــي كنـــد بيـــشترين

:دستورزيررادرنظربگيريدtrackbar1.setrange(1,100) ;

. درنظرمي گيرد100وبيشترين مقدارآن را1ترين مقداركنترل را اين دستوركم

:برنامه اي كه كاربرد اين دو كنترل را نمايش مي دهد:مثال

را trackbar دراين برنامه هنگـامي كـه نـواركنترل .نياز داردprogressbar وtrackbarاين برنامه به دو كنترل

: مي نويسيمForm_Loadكدهاي زيررا دررويداد .د كرد نيزحركت خواهprogreesbarحركت دهيد نواركنترل trackBar1.SetRange(1, 100);

progressBar1.Minimum = 1;

progressBar1.Maximum = 100;

. آن دستورات زيررا بنويسيدScroll دوباركليك كرده ودررويداد trackbarروي كنترل progressBar1.Value = trackBar1.Value;

Timer:

مثال اگربخواهيد هرچند ثانيه روال خواصـي را انجـام بدهيـد بايـد .ن كنترل براي زمان بندي كارها به كارمي رود اي

:برخي ازخواص ورويدادهاي اين كنترل عبارتند از.ازاين كنترل استفاده كنيد

Page 27: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٧

بوط بـه مرTickمدت زماني را تعيين مي كند كه پس ازمدت سپري شده دستورات رويداد :Interval خاصيت

:مثال دستورزيررادرنظربگيريد.ايم مدت به ميلي ثانيه مشخص مي شود.كنترل بايد اجرا شوندtimer.interval=10000 ;

. مربوز به كنترل اجرا شودTick ثانيه دستورات رويداد 10اين دستورموجب مي شود تاهر

فـرض كنتـرل غيرفعـال درحالـت پـيش .تعيين مي كنـد كـه كنتـرل فعـال اسـت يـا خيـر :Enabledخاصيت

. قراردهيدTrueاگربخواهيد آن رافعال كنيد مقداراين خاصيت رابرابر.است

بـراي نوشـتن دسـتورات درايـن . رخ مي دهدinterval پس ازمدت زمان تعيين شده در خاصيت : Tickرويداد

. بنويسيدTimer_Tick دوباركليك كرده و دستورات را دررويداد Timerرويداد روي كنترل

:Timerنمايش كاربرد كنترل :مثال

اين برنامه به گونه اي است كـه در . نياز داردProgressbar ويك كنترل Timerاين برنامه به يك كنترل

ابتـدا عـدد تـصادفي را در .را تغييرمـي دهـد Progressbar ميلي ثانيه به صورت تصادفي مقداركنترل2هر

:ف مي كنيم به صورت سراسري تعريForm_Loadباالي رويداد Random a=new Random();

. قرارمي دهيم100 را برابرProgressbar كنترل Maximumخاصيت

. كنترل تايمر مي نويسيمTickكد زيررا در رويداد progressBar1.Value = a.Next(100);

:NumericUpDownكنترل

ويـك ▲ و ▼اين كنتـرل ازدو دكمـه .مي روداين كنترل براي ايجاد فيلد عددي با قابليت افزايش و كاهش به كار

TextBox براي كاهش وافزايش محتويات كنترل به كارمي رونـد ودر ▲ و ▼دكمه هاي تشكيل شده است كه

TextBox كه بخواهيد مجموعه .تين كنترل براي مواقعي به كارمي رود . مي توان مقاديررا به طورمستقيم وارد كرد

:زخواص و رويدادهاي اين كنترل عبارتند ازاي ازمقاديررا مروركنيد برخي ا

اگربخواهيـد گـام . اسـت 1گام افزايش وكاهش را مشخص مي كند و درحالت پيش فـرض : Increamentخاصيت

. را وارد كنيد3 باشد دراين خاصيت عدد 3افزايش يا كاهش

��▲ و ▼ مانند ↓ و ↑تععين مي كند آيا كليدهاي : InterceptArrowKeyخاصيت ��� . م

. بزرگ ترين مقداري را تعيين مي كند كه مي توانيد با اين كنترل مرور كنيد:Maximum خاصيت

درحالـت پـيش فـرض .كم ترين مقداري را تعيين مي كند كه كنترل مي توانـد مـرور كنـد : Minimumخاصيت

.صفراست

.مقدارفعلي كنترل را تعيين مي كند: Valueخاصيت

. تغييرمي كند اين رويداد رخ مي دهدValueوقتي كه مقدارخاصيت : ValueChangedرويداد

: را نمايش مي دهدNumericUpDown كنترل برنامه اي كه فاكتوريل عدد موجود در:مثال

Form_Loadكدهاي زيررا دررويـداد .نياز داردNumericUpDown كنترل وlabelاين برنامه به يك كنترل

:مي نويسيمnumericUpDown1.Maximum = 20;

numericUpDown1.Minimum = 0;

Page 28: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٨

: مي نويسيمNumericUpDownكدهاي زير را درون كنترل int n = 1 ;

for( int i = 1;i<numericUpDown1.Value;i++)

{

n= n * i;

}

label1.Text = n.ToString(); :كالس هاي كلكسيون

هرنمونـه اي . وجود دارنـد FCLداده ها كه دركتابخانه كالس هايي هستند كه براي پياده سازي مفاهيم ساختمان

ازنكات مفيد استفاده ازكالس هـا ي كلكـسيون .ازاين كالس ها يك كلكسيون نام دارد كه مجموعه اي ازعناصراست

اين است برنامه نويس مي تواند سريع تركدنويسي كرده وكارايي بااليي را انتظار داشته باشد،حداقل حافظه رامصرف

براي اسـتفاده . را فراهم نموده است كلكسيون هاي زيادي NET.محيط كاري .رعت اجرا رابه حداكثربرساند كند وس

: را به صورت زيربه برنامه اضافه كنيمCollectionازاين كالس هاي كلكسيون بايد فضاي نام Using System.Collections ;

):پشته(Stack كالس

.قبل ازمعرفي اين كالس به تعريف پشته مي پردازيم.ه به كارمي روداين كالس براي پياده سازي مفهوم پشت

ايـن سـاختمان داده را .پشته ساختمان داده اي است كه عناصرفقط به باالي آن اضافه وازباالي آن حذف مي شـوند

LIFO(Last In First Out) داده اي كه آخر وارد پشته مـي شـود . مي نامندخروج به ترتيب عكس ورود يا

.ازپشته حذف مي شوداول

:براي تعريف يك كالس پشته به صورت زيرعمل مي كنيم

;()Stack new = نام پشته Stack

:كالس پشته داراي خواص ومتدهاي زيراست

.تعداد عناصرپشته را برمي گرداند :Count خاصيت

.تعيين مي كند آيا پشته داراي عنصري است يا خير :Contains متد

.پشته را بدون اينكه حذف كند برمي گرداند)Top(نصربااليع :Peek متد

.عنصرباالي پشته را حذف مي كند : Pop متد

. عنصري را درباالي پشته قرارمي دهد:Push متد

:به عنوان مثال دستورات زيررا ببينيدStack s =new stack() ;

s.push (0) ;

s.push (1) ; :حال دستورزيرراببينيد.مي دهدرا درپشته قرار1و0اين دستورمقادير

element =stack.pop() ;

. دخيره مي كندelement را ازباالي پشته حذف كرده ودرمتغير1اين دستورمقدار

. رابرروي پشته انجام مي دهدPopوPushبرنامه اي كه عمليات :مثال

Page 29: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٢٩

. نيازداردbutton ودوlistbox يك textboxاين برنامه به يك كنترل

: برنامه به اين صورت استشكل فرم اين

: بايد دستورزيررا درابتداي برنامه بنويسيدStackبراي استفاده ازكالس

Using System.Collections ;

: اين دستوررامي نويسيمForm_Loadروي فرم دوباركليك كرده وقبل ازرويداد Stack stk1 =new stack() ;

:ا مي نويسيم دوباركليك كرده وكدهاي زيررPushروي دكمه if (textbox1.text !=""){

stk1.push(textbox1.text) ;

listbox1.items.add(textbox1.text) ;

textbox1.text=clear ;

}

else

messagebox.show("please enter element in textbox1");

} : دوباركليك كرده وكدهاي زيررا مي نويسيمPopروي دكمه

if (stk1.count>0){

stk1.pop() ;

listbox1.items.removeat(listbox1.items.count-1) ;

}

else

messagebox.show("Stack is empty") ;

}

):Dynamic(ايجاد كنترل ها به صورت پويا

:براي ايجاد كنترل ها به صورت پويا به صورت زيرعمل مي كنيم

نام كنترل نوع كنترل=Newنوع كنترل ( );button btn1= new button( ) ;

. ايجاد مي كندbtn1به نام ) Butoon(اين دستور يك كنترل از نوع دكمه

Page 30: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٣٠

درزمان طراحي قابل مـشاهده نيـستند است كه كنترل هايي كه به صورت پويا ايجاد مي شوند نكته قابل توجه اين

.مان اجرا قابل مشاهده هستندوفقط ز

:ستورزيراستفاده مي كنيمبراي اضافه كردن كنترل ساخته شده به فرم ازدthis.controls.add(btn1);

.مي توان خصوصيات كنترل ايجاد شده را تغييردادbtn1.text ="Ok";

btn1.location = new point (10,10);

btn1.backcolor = color.blue ;

:دستورزيررا مشاهده كنيد.همچنين مي توان آرايه اي ازكنترل ها را ايجاد كردbutton [,] btn1= new button [10,10];

. تايي درست مي كند10 دكمه به صورت سطرها وستون هاي 100اين دستور تعداد

:نوشتن رويداد براي كنترل هاي ساخته شده

:براي نوشتن رويداد براي كنترل هايي كه درباال ايجاد كرده ايم به صورت زيرعمل مي كنيمPrivate void bb(object sender,event Handeler)

{

} btn1[0,0].Mouseclick+=New System.Window.Forms.MouseEvent

Handelr(this.bb)

{

btn1[0,0].backcolor=color.black;

}

: به برنامه هااضافه كردن فرم

را انتخاب Add Windows Forms گزينه Projectبراي اضافه كردن فرم ها درزمان طراحي به برنامه از منوي

اين فرم مـي توانـد .كنيم در پنجره اي كه باز مي شود گزينه دلخواه را انتخاب مي كنيم تا به برنامه اضافه شود مي

دراين جا مي خواهيم يك فـرم .باشد. وغيرهHTML،پايگاه داده محلي،يك صفحه AboutBoxفرم يك فرم ساده،

AboutBoxبه برنامه اضافه كنيم . AboutBox براي معرفي برنامه بـه كـار هابرنامه فرمي است كه معموال در

برنامـه و رژن نرم افزار،اطالعات مربوط به حق انتشارل نام كمپاني سازنده نرم افزار،و شامل اطالعاتي ازقبي مي رود و

. ...

:شكل اين پنجره به صورت زيراست

Page 31: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٣١

مي توان ايـن كـد را .رعمل مي كنيمبراي نمايش فرم بايد اول آن را به برنامه معرفي كرد براي اين كار به صورت زي

;( ) aboutbox1 about=new aboutbox1 :دريك دكمه نوشت

aboutbox1.show( );

���� ���� �� � �� ���� ��� �� ������ ����� ����� �� ���� �� ��� ���� �� ��" ) � �� � � ����� ترتيب(

Solution Explorer ��"گزينه Program.cs"��� Run كليك كرده و در تابع زير درقسمت

.را شود مي نويسيمنام فرمي را كه مي خواهيم اول اج

Page 32: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٣٢

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new � ;(()��م ��م ��رد �

} : ازپروژهيي اجرايا هلي فاجاديا

رادارد درسـت نـصب تيـ كه قابليي اجرالي فاكي برنامه را به صورت دي با دي كه برنامه را به طوركامل نوشت يهنگام

Setup andو Project Type،Other Project Type ودرقـسمت New project كاردركـادر ني ايبرا.ديكن

Deploymentدرقسمت .مي كني را انتخاب مTemplatesنهي گز Setup Project يبـرا .مي كنـ ي را انتخاب مـ

را انتهـاب كـرده و Existing Project نـه ي گزAddرمنـو ي وزFile ي نـصب ازمنـو ليـ اضافه كردن پروژه بـه فا

درقسمت . نصب برنامه اضافه شود لي تا به فا مي كن ميرا انتخاب . csproj برنامه با پسوند ليفادركادربازشده آدرس

Application Folderيرو.مي گـذار ي مـ رنـد ي گيقرارمـ ازنصب را كه بعديي هاليا ف Application Folder

ي انتخـاب ورو را Primary Output نـه ي سـپس گز Project Output نهيگزAdd ي راست كرده وازمنوكيكل

جـاد ي برنامـه ا يبـرا ) بـر انيـ م(Shortcut كيـ تـوان ي مUser Desktop درقسمت.مي كني مكيكل Okدكمه

را انتخاب كرده Create New Shortcutنهي كرده وگزكي راست كليسمت راست درقسمت خالن كاربراي اي.كرد

توان آن را ي م فايلپس ازانتخاب.مي كني انتخاب ممي كرده بودجادي را كه قبال ايلي فاApplication Folderودر

ي منـو All Program يدرمنـو رمنـو ي زكيـ تـوان ي مـ User Program Menu نـه ي گزقيازطر. دادرنامييتغ

كـه ي را انتخاب و هنگـام Add Folder كرده و كي كلراست User Program Menu يرو. كردجادياستارت ا

قرار رمنوي ازبرنامه را درزShortcut كي نكهي ايبرا.دي آن برگزي توان نام دلخواه را برايپوشه موردنظرساخته شد م

مـورد يـي اجرالي را انتخاب وفاNew Shortcut نهي كرده وگزكي راست كلي درسمت راست درقسمت خالميده

نـه ي گزBuild ي ازمنـو Setup يي نهـا ليـ فاجادي ايدرآخربرا.مي كني انتخاب مApplication Folderنظررا از

Build)يبيترك يدهاي ازكلايرا انتخاب ) نام پروژه Ctrl+F6مي كني استفاده م.

:مثال هايي ازچند برنامه

.را به ليست اضافه مي كندTextboxتفاده ازيك دكمه مقداربرنامه اي كه با اس-1

:كدهاي زيررا درون دكمه مي نويسيمlistBox1.Items.Add ( textBox1.Text);

textBox1.Text = "";

. رنگ زمينه فرم را تغييرمي دهدRadioButtonبرنامه اي كه با استفاده از چند -2

:شكل فرم اين برنامه بدين صورت است

Page 33: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٣٣

: مي نويسيمChange colorهاي زيررا درون دكمه كد

if (radioButton1.Checked)

{

this.BackColor = Color.Black;

}

else if (radioButton2.Checked)

this.BackColor = Color.Red;

}

else if (radioButton3.Checked)

{

this.BackColor = Color.Yellow;

} رنـگ فـرم براسـاس رنـگ تعريـف شـده Change colorي و كليـك بـرروي دكمـه با انتخاب هر دكمـه راديـوي

.تغييرخواهد كرد

. را به ليست اضافه مي كند TextBox مقدار درون Enterبرنامه اي كه با فشردن كليد -3

: مي نويسيمKeypress،TextBoxكدهاي زيررا درون رويداد

if (e.KeyChar == ' \r ')

{

listBox1.Items.Add(textBox1.Text);

textBox1.Text = ""; معـادل يكبـار فـشردن r\( تشخيص دادEnterدراين برنامه هرگاه كاراكتر فشرده شده در صفحه كليد رابرابر كليد

. را به ليست اضافه مي كندtextboxمقدار درون ) استEnterكليد

اين برنامـه بـه دو كنتـرل .اري را نمايش مي دهدبرنامه اي كه با استفاده از كنترل تايمر تاريخ و زمان سيستم ج -4

labelويك كنترل تايمر نيازمند است :

: مي نويسيمForm_Loadكد زير را دررويداد

Page 34: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٣٤

label2.Text = DateTime.Now.Year.ToString() + "/"+

DateTime.Now.ToString(); : كنترل تايمر مي نويسيم Tickكدهاي زيررا درون رويداد

label1.Text = (DateTime.Today.Year).ToString()

+ "/" + (DateTime.Today.Month).ToString()

+ "/" + (DateTime.Today.Day).ToString() + "/" +

(DateTime.Today.DayOfWeek).ToString() + " "

+DateTime.Now.Hour.ToString() + ":" +

DateTime.Now.Minute.ToString() + ":" +

DateTime.Now.Second.ToString();

:خروجي برنامه به صورت زير است

. كنترل را به صورت پويا ايجاد مي كند100برنامه اي كه -5

: مي نويسيم Form_Loadكدهاي زيررا دررويداد int i, j;

int x = 0;

int y = 0;

int height = 35;

int width = 35;

Button[,] btn = new Button[10, 10];

for (i = 0; i < 10; i++)

{

for (j = 0; j < 10; j++)

{

btn[i, j] = new Button();

this.Controls.Add(btn[i, j]);

btn[i, j].Size = new Size(height, width);

btn[i, j].Location = new Point(x, y);

btn[i, j].BackColor = Color.Red;

Page 35: ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا · PDF file١ ا داز اد ناد او ˇˆو ˙ ˝ :سرد و ن˚˜ ن :سر د˛ ا:: :: Iau-abadan-pc.blogfa.com

٣٥

x += height + 1;

}

x = 0;

y += width + 1;

}

: كنترل بدين صورت ايجاد مي شوند100هنگامي كه برنامه را اجرا كنيم