تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 44 +

تعداد کل مطالب : 338 +

تعداد نظرات : 33 +

حضرت محمد (ص) : داناترین مردم کسى است که دانش دیگران را به دانش خود بیفزاید.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و هشتاد و چهارم


 به نام خداوند جان آفرین حکیم سخن در زبان آفرین



آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و هشتاد و چهارم

سلام به همه کاربران وب‌سایت لندلرن

قسمت و صد و هشتاد و چهارم


چگونه كار مي كند؟

در ابتداي اين برنامه بعد از ساختن پروژه، يك ارجاع به فايل System.Windows.Forms در برنامه ايجاد مي كنـيم .

علت اين كار نيز اين است كه طي اين برنامه مي خواهيم از كلاسهاي موجود در اين فضاي نام استفاده كنيم و ويـژوال اسـتوديو بـه صورت پيش فرض اين فضاي نام را به برنامه هايي كه از نوع Class Library ايجاد مي شوند اضافه نمي كند.

بعد از انجام اين كار يك فرم ويندوزي به برنامه اضافه كرده، كنترلهاي مورد نياز را در آن قـرار مـي دهـيم و خاصـيتهاي آن را نيـز تنظيم مي كنيم .

يكي از مهمترين خاصيت هايي كه در اين قسمت تغيير مي دهـيم، خاصـيت DialogResult در كنتـرل Button است .

با مقدار دادن به اين خاصيت سبب مي شويم هنگامي كه كاربر روي يكي از دكمه هاي OK و يـا Cancel كليـــك كنـــد، ايـــن دكمـــه هـــا باعـــث شـــوند كـــه فـــرم بـــسته شـــده و مقـــدار DialogResult.OKو يـــاDialogResult.Cancel به احضار كننده ي فرم برگشت داده شود .

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

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

البته هيچ الزامي در رعايت اين مورد وجود ندارد و مي توان رويداد هايي را ايجاد كرد كه متد هـاي آن هـيچ پارامتري دريافت نكنند و يا بيش از دو پارامتر دريافت كنند (همانند برنامه ي قبل ).
اما معمولاً به صورت قرارداد هنگام ايجاد يك رويداد، متدهاي مربوط به آن را به صورتي تعريف مي كنند كه دو پارامتر دريافت كند :

  • پارامتر اول كه از نوع Object است مشخص كننده ي شيئ اي است كه اين رويداد را فراخواني كرده است.
  • پارامتر دوم كه از نوع EventArgs و يا يكي از كلاس هاي مشتق شده از آن است، حاوي اطلاعا ت لازم در مـورد رويداد رخ داده است .
    معمولاً اگر هنگام رخ دادن يك رويداد نياز نباشد كه اطلاعات خاصي به متد ها ارسال شود از كلاس EventArgs استفاده مي كنند .
    اما اگر بخواهيم پارامترهايي را به متد ها ارسال كنيم، مـي تـوانيم يـك كـلاس از EventArgs مشتق كرده و كلاس را به گونه اي تغيير دهيم تا بتواند ايـن پـارامتر هـا را در خـود نگهـداري كنـد.
    سپس پارامتر دوم متد مربوط به رويداد را، از نوع كلاس ايجاد شده در نظر بگيريم.

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

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

در بقيه ي موارد مي توانيم از كـلاس EventArgs استفاده كنيم.

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

بعد از انجام دادن اين موارد به طراحي فرم و متد هاي مورد نياز در آن مي پردازيم .

در ابتدا سه متغيير از نوع private تعريـف مي كنيم كه به وسيله ي متد هاي داخل فرم مـورد اسـتفاده قـرار خواهنـد گرفـت .

متغييـر intAttemptCount بـراي شمارش تعداد مراتبي است كه كاربر سعي كرده است وارد سيستم شود و با شكست مواجه شده است .

هنگامي كه مقدار اين متغيير به عدد سه برسد برنامه به صورت اتوماتيك بسته خواهد شد .

متغيير blnAllowClosing براي مشخص كردن اين مورد به كار مي رود كه آيا فرم مي تواند بسته شود يا خير . اين متغيير در طي برنامه و در شرايط مختلف مقادير مختلفي را قبول خواهد كـرد.
متغيير intUserID نيز براي ذخيره ي شناسه ي كاربري به كار مي رود كه توانسته است با موفقيـت وارد سيـستم شـود (بـه عبارت ديگر نام كاربري و كلمه ي عبور را  درست وارد كرده است ).

ادامه چگونگی کارکرد برنامه را در قسمت صد و هشتاد و پنجم ببینید.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ