مقدمه
کد برنامه تخته سیاه با سی شارپ، ابزاری است که به کاربران این امکان را میدهد تا یادداشتها و نقاشیهای خود را بهسادگی روی صفحه نمایش ایجاد کنند. این برنامه معمولاً در محیطهای آموزشی و کارگاهی کاربرد دارد.
طراحی رابط کاربری
برای طراحی یک تخته سیاه، ابتدا باید یک فرم ساده با استفاده از Windows Forms ایجاد کنید. در این فرم، از کنترلهای مختلفی مانند `Panel` برای رسم، `Button` برای پاک کردن صفحه و `ColorDialog` برای انتخاب رنگ استفاده میشود.
کد برنامه
در اینجا یک نمونه کد ساده برای تخته سیاه آورده شده است:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
public class BlackBoard : Form
{
private Panel drawingPanel;
private Color currentColor = Color.Black;
private bool isDrawing = false;
public BlackBoard()
{
this.Text = "تخته سیاه";
this.Size = new Size(800, 600);
drawingPanel = new Panel
{
Dock = DockStyle.Fill,
BackColor = Color.White
};
drawingPanel.MouseDown += new MouseEventHandler(DrawingPanel_MouseDown);
drawingPanel.MouseMove += new MouseEventHandler(DrawingPanel_MouseMove);
drawingPanel.MouseUp += new MouseEventHandler(DrawingPanel_MouseUp);
this.Controls.Add(drawingPanel);
}
private void DrawingPanel_MouseDown(object sender, MouseEventArgs e)
{
isDrawing = true;
}
private void DrawingPanel_MouseMove(object sender, MouseEventArgs e)
{
if (isDrawing)
{
using (Graphics g = drawingPanel.CreateGraphics())
{
g.FillEllipse(new SolidBrush(currentColor), e.X, e.Y, 5, 5);
}
}
}
private void DrawingPanel_MouseUp(object sender, MouseEventArgs e)
{
isDrawing = false;
}
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new BlackBoard());
}
}
```
توضیحات کد
در این کد:
- ایجاد فرم: یک فرم جدید به نام `BlackBoard` ایجاد میشود.
- پنل رسم: پنل برای رسم نقاشیها تعریف میشود.
- رویدادهای ماوس: با استفاده از رویدادهای `MouseDown`, `MouseMove`, و `MouseUp`، حالت رسم کنترل میشود.
- رنگ و قلم: رنگ و اندازه قلم در اینجا به صورت پیشفرض تعیین شده است.
نتیجهگیری
با استفاده از این کد، شما میتوانید یک تخته سیاه ساده ایجاد کنید. این برنامه میتواند به راحتی گسترش یابد. به عنوان مثال، میتوانید گزینههای اضافی مانند رنگهای مختلف و امکان پاککردن صفحه را اضافه کنید.
با کمی خلاقیت، میتوانید امکانات بیشتری به این برنامه بیفزایید!
برنامه تخته سیاه با سیشارپ (C#): یک راهنمای کامل و جامع
در این مقاله، قصد دارم به طور کامل و جامع درباره برنامه تخته سیاه با زبان سیشارپ صحبت کنم. این پروژه، یکی از پروژههای محبوب و جذاب است که بسیاری از توسعهدهندگان تازهکار و حرفهای برای تمرین و یادگیری مفاهیم برنامهنویسی از آن استفاده میکنند. در ادامه، به بخشهای مختلف این برنامه، ساختار، نکات کلیدی و موارد مهمی که باید رعایت کنید، میپردازم.
مقدمه
برنامه تخته سیاه، یک برنامه رسم و خطکشی است که معمولا در محیطهای آموزشی و یا برای تمرین طراحی میشود. هدف اصلی، امکان رسم خطوط، اشکال هندسی، و یا نوشتن متون بر روی یک بوم دیجیتال است. در این پروژه، از ویندوز فرم (Windows Forms) در سیشارپ بهره میگیریم، چون به راحتی امکان طراحی رابط کاربری گرافیکی را فراهم میکند و کاربر میتواند با کلیک و کشیدن، بر روی صفحه نقاشی کند.
پیشنیازها و ابزارهای مورد نیاز
برای توسعه این برنامه، به موارد زیر نیاز دارید:
- Visual Studio (آخرین نسخه ترجیحاً)
- دانش پایه در برنامهنویسی سیشارپ و Windows Forms
- آشنایی با کنترلهای گرافیکی و رویدادهای Mouse و Paint
درک ساختار برنامه
در این پروژه، چند بخش اصلی وجود دارد:
- رابط کاربری (UI)
- رویدادهای مربوط به موس (MouseDown، MouseMove، MouseUp)
- رسم بر روی بوم (Canvas)
- امکانات اضافی مانند رنگ، اندازه قلم، و پاککن
جزئیات پیادهسازی
۱. طراحی فرم (UI)
در طراحی فرم، موارد زیر را باید اضافه کنید:
- یک PictureBox بزرگ که به عنوان بوم رسم عمل میکند.
- دکمههایی برای انتخاب رنگ، پاک کردن صفحه، و تنظیم اندازه قلم.
- ابزارهای کنترل، مانند لیست کشویی برای انتخاب ضخامت قلم.
۲. تعریف متغیرهای مورد نیاز
در کلاس فرم، متغیرهای زیر را تعریف میکنیم:
```csharp
private bool isDrawing = false;
private Point previousPoint;
private Pen currentPen = new Pen(Color.Black, 2);
```
این متغیرها به ما کمک میکنند تا وضعیت رسم و ابزارهای مورد استفاده را مدیریت کنیم.
۳. رویدادهای موس
برای رسم، باید رویدادهای موس را مدیریت کنیم:
- در رویداد `MouseDown`، شروع به رسم میکنیم.
- در `MouseMove`، خط را ادامه میدهیم.
- در `MouseUp`، رسم را متوقف میکنیم.
کد نمونه:
```csharp
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
isDrawing = true;
previousPoint = e.Location;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (isDrawing)
{
using (Graphics g = pictureBox
- CreateGraphics())
g.DrawLine(currentPen, previousPoint, e.Location);
}
previousPoint = e.Location;
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
isDrawing = false;
}
```
۴. پاک کردن صفحه
برای پاک کردن صفحه، از کد زیر استفاده میشود:
```csharp
private void clearButton_Click(object sender, EventArgs e)
{
Graphics g = pictureBox
- CreateGraphics();
}
```
۵. تغییر رنگ و ضخامت قلم
برای تغییر رنگ و ضخامت، میتوانید از کنترلهای رنگ و نوار لغزنده استفاده کنید:
```csharp
private void colorButton_Click(object sender, EventArgs e)
{
using (ColorDialog colorDialog = new ColorDialog())
{
if (colorDialog.ShowDialog() == DialogResult.OK)
{
currentPen = new Pen(colorDialog.Color, currentPen.Width);
}
}
}
private void thicknessTrackBar_Scroll(object sender, EventArgs e)
{
currentPen = new Pen(currentPen.Color, thicknessTrackBar.Value);
}
```
۶. نکات مهم و بهبودهای احتمالی
- بهتر است از یک Bitmap به عنوان بوم رسم استفاده کنید، تا هنگام پاک کردن، از دست رفتن نقاشی جلوگیری شود.
- هنگام رسم، از `Graphics.FromImage()` استفاده کنید، نه `CreateGraphics()`.
- میتوانید امکانات بیشتری مانند ابزارهای اشکال هندسی، متن، یا undo/redo اضافه کنید تا برنامه کاربردیتر شود.
نتیجهگیری
در این مقاله، سعی کردم به صورت کامل و جامع، ساختار، اجزا، و نکات کلیدی برنامه تخته سیاه با سیشارپ را توضیح دهم. این پروژه، نه تنها تمرینی عالی برای یادگیری کنترلهای گرافیکی است، بلکه پایهای است برای پروژههای پیچیدهتر و خلاقانهتر در برنامهنویسی ویندوز فرمس. با تمرین و افزودن امکانات جدید، میتوانید این برنامه را به سطح بالاتری برسانید و مهارتهای برنامهنویسی خود را تقویت کنید.
اگر سوالی دارید، در خدمتتان هستم!