تبیان، دستیار زندگی

آشنایی با گرافیک در سی شارپ، جلسه دوم

حال می‎خواهیم برنامه‎ی جلسه‎ی قبل را کامل‎تر کنیم و آن را طوری بنویسیم که وقتی بر روی دکمه کلیک راست ماوس زدیم گزینه‎هایی مانند زیر نمایان شود و با انتخاب میانه، میانه مثلث رسم شود....
عکس نویسنده
عکس نویسنده
بازدید :
زمان تقریبی مطالعه :

آشنایی با گرافیک در سی شارپ، جلسه دوم

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

هدف کلی: آشنایی با گرافیک در سی شارپ
سرفصل های تئوری: کنترل منو

- تمرین برخی محاسبات هندسی

حال می خواهیم برنامه ی جلسه ی قبل را کامل تر کنیم و آن را طوری بنویسیم که وقتی بر روی دکمه کلیک راست ماوس زدیم گزینه هایی مانند زیر نمایان شود و با انتخاب میانه، میانه مثلث رسم شود:

آشنایی با گرافیک در سی شارپ، جلسه دوم
برای این کار لازم است ابتدا بتوانیم کلیک راست کردن ماوس را تشخیص بدهیم اما همانطور که می بینید در لیست رویدادهای ماوس برای فرم گزینه ای برای رویداد کلیک راست ماوس وجود ندارد و ما برای انجام این کار لازم است خودمان آن را درست کنیم، برای این کار می توان کدی مانند زیر در رویداد MouseUp  قرار و با چک کردن حالت ماوس کلیک راست را تشخیص داد:
آشنایی با گرافیک در سی شارپ، جلسه دوم
آشنایی با گرافیک در سی شارپ، جلسه دوم

ContextMenuStript:
 این کنترل برای نمایش یک منوی باز شونده استفاده می شود.

این کنترل همانند کنترل ( menu strip ) که محفظه ای برای ساختار منویی برای یک برنامه است. دارای محفظه  ای برای ایجاد آیتم می باشد که رویداد کلیک هر آیتم برای انجام وظیفه ای که ما تعریف می کنیم به راحتی بکار می رود حال ادامه کد برنامه را به این صورت می نویسیم، ابتدا یک منو در تابع لود فرم مقداردهی می کنیم:

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

سپس در رویداد کلیک آن را در مکانی که ماوس کلیک شده است نمایش می دهیم:

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

در کد فوق ما به ContextMenuStrip یک مکان می دهیم برای قرار گرفتن آن که طبیعتاً آن مکان باید جایی باشد که ما کلیک راست ماوس را فشار داده ایم و برای محاسبه ی آن مکان از جمع مختصات فرم و مختصات نسبی ماوس روی فرم استفاده کرده ایم، برنامه را اجرا کنید و کلیک راست کنید تا از درستی این محاسبات مطمئن شوید.
وقت کشیدن میانه فرا رسیده است، برای اینکه بتوانیم متوجه شویم کاربر چه زمانی و روی کدام گزینه از منوی نمایش داده شده کلیک کرده است، لازم است رویدادی برای این موضوع بنویسیم، این بار قرار است یک رویداد را خودمان کاملاً ایجاد کنیم، برای این کار پس انتخاب اسم رویداد مثلاً (MenuClickedItem) آن را مانند زیر تعریف می کنیم:

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

 

سپس باید این رویداد را به شی خود معرفی کنیم تا هنگامی که روی آیتم ها کلیک شد به این رویداد اطلاع داده شود، برای معرفی خط زیر را به کد اضافه می کنیم:

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

و در نهایت بدنه رویداد را می نویسیم و برنامه را اجرا می کنیم:

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

تمرین اضافی:
با اضافه کردن آیتم های نیم ساز  - ارتفاع و عمود منصف به کنترل ContextMenuStrip و با استفاده از شیب خط عمود و همچنین رابطه نیمساز و عمود منصف که در ریاضیات آشنا هستید برنامه خود را توسعه دهید، برای افزودن هر کدام از این بخش ها به رویداد کلیک منو، از اندیس آن ها استفاده نمایید، برای مثال:

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

دوران:
ما جهت دوران شکل های رسم شده می توانیم با استفاده از کتابخانه دات نت به راحتی آن ها را دوران دهیم کافیست فضای Drawing2d را با استفاده از using در قسمت بالا فایل اضافه کنیم:

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

حال یک آیتم به منوی خود اضافه می کنیم و نام آن را دوران می گذاریم و در قسمت رویداد کلیک باید با استفاده از ماتریس دوران آن را دوران دهیم (در سی شارپ با استفاده از کلاس ماتریس و استفاده از متدهای مختلف آن می توانیم به راحتی اعمال بین ماتریس ها را انجام دهیم و از آن ها استفاده کنیم). کد زیر موجب دروان 45 درجه ای شکل می شود:

 

 

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

آشنایی با گرافیک در سی شارپ، جلسه دوم

 

شما عزیزان می توانید برای انجام این پروژه به طرح درس های ذیل مراجعه فرمایید:
آشنایی با گرافیک در سی شارپ، جلسه اول
آشنایی با گرافیک در سی شارپ، جلسه دوم
آشنایی با گرافیک در سی شارپ، جلسه سوم
آشنایی با گرافیک در سی شارپ، جلسه چهارم


بخش پژوهش های دانش آموزی تبیان، تهیه: محسن نصرتی

تنظیم: نسرین صادقی