دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

رسم خط روی فرم در سی شارپ

در پست قبلی روش رسم خط به کمک تعداد زیادی از نقاط را ذکر کردیم . در این پست رسم خط را به روش معمول آن ذکر می کنیم به کمک متد "DrawLine "ما فقط با دادن مختصات نقطه اول و آخرخط مورد نظر خود می توانیم آن را رسم کنیم. در این روش که ما قصد داریم درآن از فرم خود بعنوان یک بوم نقاشی استفاده کنیم . بایستی پس از اعلان یک گرافیک ، فرم خود را که در اینجا با کلمه کلیدی this نشان داده می شود بعنوان صفحه گرافیکی خود معرفی کنیم .

Graphics g1 = this.CreateGraphics();

اکنون هنگام اعلان یک رنگ می باشد.

Color myRgbColor = new Color();

توجه دارید که فقط با اعلان یک رنگ ما فقط نامی برای آن رنگ انتخاب کرده ایم ولی کار اصلی که تعیین خود رنگ می باشد هنوز صورت نگرفته که در خط بعدی به کمک متد "  FromArgb" این کار صورت می گیرد . در اینجا ما رنگ قرمز خالص را با آلفای 255 تعیین کرده ایم.

myRgbColor = Color.FromArgb(255,255, 0, 0);

به یاد دارید که در درس قبلی ما به کمک متدد "SetPixel" یک نقطه روی یک بیت مپ رسم کردیم و با تکرار آن منتج به رسم یک خط شدیم ولی در اینجا روش ما استفاده ازمتد "DrawLine" می باشد و لذا برای انجام آن احتیاج به یک وسیله به نام "Pen" داریم . برای اینکه اعلان یک "Pen" بطور کامل صورت گیرد به یک "Color" و یک عدد از نوع "float" برای تعیین ضخامت آن نیاز داریم.

Pen myPen = new Pen(myRgbColor,3f);
پس از نوشتن این چهار خط کد نوبت به آخرین خط و استفاده از متد"DrawLine" می رسد. این متد به یک "Pen" و چهار عدد که به ترتیب مختصات نقطه شروع و مختصات نقطه پایان خط می باشند نیاز دارد.
g1.DrawLine(myPen, 20, 50, 90, 150);
ضمناً برای راحتتر شدن کار می توانید بجای نوشتن چهار عدد ، با کمک گرفتن از" Point " و تعیین مختصات در آن ازطول خطوط کد و گیج کننده بودن آن رها شوید.
بصورت زیر:
 Point pt1 = new Point(20, 50);
  Point pt2 = new Point(90, 150);
 g1.DrawLine(myPen2, pt1, pt2);

رسم خط به کمک نقطه

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

در این روش نیز به یک پیکچرباکس و یک بیت مپ نیاز داریم .

 pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);

یک بیت مپ با ابعاد پیکچرباکس تعریف کرده و ایمیج پیکچرباکس را برابر بیت مپ قرار می دهیم.

در ادامه دو متغیر از نوع اینتجر تعریف می کنیم.

int x, y;

در انتها در دو لوپ تودرتو هر تعداد نقطه که بخواهیم می توانیم با کمک همان تابع "ست پیکسل" رسم کنیم.

for (y = 0; y < 200; y++)
            {
                for (x = 0; x < 200; x++)
            {
                    ((Bitmap)pictureBox1.Image).SetPixel(x, 20, Color.FromArgb(255, 0, 0));
            }
            }

رسم نقطه در سی شارپ

چگونه در زبان سی شارپ می توانیم یک نقطه رنگی روی صفحه رسم کنیم ؟

برای رسم کردن یک نقطه رنگی باید از یک Bitmap و یک picture Box کمک گرفت . پس از افزودن یک پیکچرباکس  روی فرم می توانیم پس زمینه آن را از قسمت ویژگیها به رنگ سفید تغییر دهیم. سپس در رویداد یک دکمه یک بیت مپ با نام دلخواه تعریف کرده و ابعاد آن را مثلاً برابر ابعاد پیکچرباکس قرار دهیم.

Bitmap mybmp = new Bitmap (pictureBox1.Width, pictureBox1.Height);

سپس ایمج پیکچرباکس را برابر بیت مپ قرار می دهیم .

pictureBox1.Image = mybmp;

و سرانجام در آخر با کمک تابع "ست پیکسل" و دادن پارامترهای مورد نیاز مانند مختصات محل نقطه و رنگ مورد نظر کار به اتمام می رسد.

((Bitmap)pictureBox1.Image).SetPixel(20, 20, Color.FromArgb(255,255, 0, 0));

انتقال اطلاعات از یک فرم به فرم دیگر در سی شارپ

بسیار پیش می آید که در یک برنامه نیاز دارید یک سری اطلاعات از قبیل متن ، تصویر ، رنگ و یا هر چیز دیگری را از یک فرم به فرم دیگرمنتقل سازید این کار بدون انجام تدابیر اولیه امکان پذیر نمی باشد. تصویر زیر نشان می دهد که برای انتقال مثلاً یک تصویر(image) از فرم اول به فرم دوم چه کاری باید انجام داد .

در اینجا چون فرم دوم گیرنده محسوب می شود باید امکاناتی برای تحویل گرفتن اطلاعات (get)و اعمال تغییرات  در فرم دوم (set)داشته باشد. برای این منظور این گیرنده باید دو شرط داشته باشد یکی اینکه (public) باشد دوم اینکه نوعش با نوع اطلاعاتی که قصد انتقال آن را داریم یکسان باشد در اینجا (image) . در فرم اول نیز باید ابتدا یک نمونه از فرم دوم ایجاد کرده و نام گذاری کنیم و به کمک نام آن نمونه به متغییر مورد نظر خود دسترسی پیدا کرده و به آن مقدار دهیم .

کاربرد علامت اس دلار( $ )در سی شارپ

کاربرد علامت اس دلار( $ )در سی شارپ

همآنطور که می دانید در سی شارپ برای فرمت دادن به یک رشته از روشی استفاده می شودکه در آن پس از مشخص شدن تعداد متغییرها آنها را از صفر به بالا شماره گذاری کرده و شماره هر متغییر را در بین دو آکولاد نوشته و در جای مورد نیاز می نویسند و سپس درمنتها الیه سمت راست خط اسامی متغییرها را به ترتیبی که باید نوشته شوند می نویسند. مانند نمونه پائین.


  string name = "Mark";

var date = DateTime.Now;

Console.WriteLine("Hello, {0}! Today is {1}, it's {2:HH:mm} now.",name, date.DayOfWeek, date);


خط چهارم این کد را با استفاده از علامت اس دلار بشکل زیر نیز می توان نوشت.

Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.");

خروجی هردو کد یکسان و به شکل زیر می باشد.                                                                                                                                                                 :  output

 

Hello, Mark! Today is Wednesday, it's 19:40 now.