خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

چگونه اولین برنامه Windows Forms (Winforms) خود را در ویژوال استودیو ایجاد کنید

با Microsoft Visual Studio آشنا شوید و برنامه های خود را با Windows Forms بدون نیاز به کدنویسی توسعه دهید.

Windows Forms یک فریمورک موجود در ویژوال استودیو است که به شما امکان می دهد با کمک یک رابط کاربری گرافیکی برنامه های دسکتاپ بسازید. این به شما امکان می دهد ویجت هایی مانند دکمه ها یا برچسب ها را مستقیماً روی بوم کلیک کرده و بکشید و ویژگی های هر ویجت مانند اندازه قلم، رنگ یا حاشیه آن را دستکاری کنید.

در این مقاله، از یک مبدل ساده سانتیگراد به فارنهایت به عنوان مثال برای بررسی اصول اولیه نحوه راه اندازی یک برنامه فرم ویندوز استفاده می شود. Visual Studio 2019 Community Edition نسخه ای است که برای این آموزش استفاده می شود.

نحوه ایجاد پروژه Windows Forms در ویژوال استودیو

ابتدا پروژه را در ویژوال استودیو ایجاد کنید.

  1. ویژوال استودیو را باز کرده و Create a New Project را انتخاب کنید.
  2. ویژوال استودیو لیستی از قالب های پروژه را که می توانید انتخاب کنید در اختیار شما قرار می دهد.
  3. برای ایجاد یک Windows Forms Application، Windows Form App را جستجو کرده و آن را از لیست الگوها انتخاب کنید. پس از انتخاب این گزینه، روی Next کلیک کنید. اگر گزینه Windows Form App در لیست موجود نیست، نسخه نصب شده ویژوال استودیو را تغییر دهید. در Visual Studio Installer، حجم کار توسعه دسکتاپ دات نت را برای Desktop و Mobile اضافه کنید و Visual Studio را دوباره راه اندازی کنید.
  4. یک نام و مکان برای پروژه اضافه کنید و روی Next کلیک کنید. مکان دایرکتوری است که فایل های کد در آن ذخیره می شوند.
  5. در صفحه بعدی، انتخاب پیش فرض .NET Core 3.1 را نگه دارید.
  6. روی ایجاد کلیک کنید.
  7. پس از اتمام ساخت پروژه ویژوال استودیو، پروژه باز خواهد شد.

Winforms را از Project Templates انتخاب کنید

اگر گزینه Windows Form App در لیست موجود نیست، نسخه نصب شده ویژوال استودیو را تغییر دهید. در Visual Studio Installer، حجم کار توسعه دسکتاپ دات نت را برای Desktop و Mobile اضافه کنید و Visual Studio را دوباره راه اندازی کنید.

تنظیمات پروژه Winforms را پیکربندی کنیدنسخه Net Winforms را انتخاب کنیدمحیط ویژوال استودیو با بوم

نحوه اضافه کردن عناصر به بوم پروژه

بوم ناحیه سفیدی است که در سمت چپ بالای صفحه قرار دارد. برای تغییر اندازه در صورت نیاز، روی نقاط پایین، راست یا پایین سمت راست بوم کلیک کرده و بکشید.

برای ایجاد رابط کاربری برنامه، ویجت هایی مانند دکمه ها یا جعبه های متن را روی بوم اضافه کنید.

  1. تب View را در بالای پنجره باز کرده و جعبه ابزار را انتخاب کنید.
  2. با این کار یک جعبه ابزار به سمت چپ برنامه اضافه می شود. نماد پین را در سمت راست بالای جعبه ابزار انتخاب کنید تا به طور دائم آن را پین کنید.
  3. این جایی است که می توانید هر ویجتی را از جعبه ابزار روی بوم بکشید. یک دکمه را از جعبه ابزار برجسته کنید و آن را روی بوم بکشید.
  4. دو جعبه متن دیگر را به همراه سه برچسب (دو برچسب برای هر جعبه متن و یک برچسب برای عنوان در بالای برنامه) روی بوم بکشید.
  5. هر ویجت روی بوم دارای ویژگی های مرتبط با آنها است. یک ویجت را برجسته کنید تا پنجره Properties در سمت راست پایین ویژوال استودیو نمایش داده شود که تمام خصوصیات ویجت را فهرست می کند. این ویژگی ها می تواند شامل متن، نام، اندازه قلم، حاشیه یا تراز ویجت برجسته شده باشد.
  6. در حال حاضر، متن روی این ویجت‌ها همچنان عبارتند از label1، label2 یا button1. ویجت label1 را انتخاب کنید و ویژگی Text را در پنجره خواص ویرایش کنید تا بگویید “سانتیگراد تا فارنهایت”. اندازه فونت را به 22pt تغییر دهید.
  7. به طور مشابه، ویژگی‌های دیگر ویجت‌های روی بوم را به صورت زیر ویرایش کنید: ویژگی ویجت مقدار جدید label2 متن برچسب درجه سانتیگراد3 متن دکمه فارنهایت متن محاسبه کادر متنی فارنهایت فقط خواندنی درست است
مطلب مرتبط:   طراحی سیستم سطح بالا در مقابل طراحی سیستم سطح پایین در توسعه نرم افزار

برای مشاهده نوار ابزار، تب View را در ویژوال استودیو باز کنیدکشیدن ویجت روی بوم در ویژوال استودیوبوم ویژوال استودیو با سه برچسب، دو جعبه متن و یک دکمهویژوال استودیو ویژگی های ویجت ها را تغییر می دهد

ویجت

ویژگی

ارزش جدید

label2

متن

درجه سانتیگراد

label3

متن

فارنهایت

دکمه

متن

محاسبه

جعبه متن فارنهایت

فقط خواندنی

درست است، واقعی

نحوه مدیریت رویدادها و نوشتن کد در Code-Behind

ویجت های روی بوم را می توان به رویدادها گره زد. رویدادها می‌توانند شامل مواردی مانند کلیک کردن روی یک دکمه، تغییر متن درون کادر متنی یا انتخاب یک دکمه رادیویی خاص باشند. هنگامی که این رویدادها اتفاق می افتد، می تواند باعث شود بخشی از کد در Code-Behind فعال شود.

سی شارپ زبانی است که هنگام ایجاد فرم های ویندوز استفاده می شود. اگر تا به حال از سی شارپ استفاده نکرده اید، دلایل عملی زیادی برای یادگیری برنامه نویسی سی شارپ وجود دارد.

برای این برنامه خاص، یک رویداد به دکمه محاسبه اضافه کنید تا با فشار دادن این دکمه، بخشی از کد اجرا شود.

  1. روی دکمه Calculate دوبار کلیک کنید تا به طور خودکار Form1.cs با روش رویداد جدید باز شود: private void calculateButton_Click(فرستنده شی، EventArgs e)
  2. اینجاست که کدی را اضافه می کنید که محاسبه درجه سانتیگراد به فارنهایت را انجام می دهد و نتیجه را در کادر متنی فارنهایت نمایش می دهد. برای انجام این کار، باید بتوانید مقدار را از کادر متنی سلسیوس بخوانید و کادر متنی فارنهایت را برای نمایش نتیجه تغییر دهید.
  3. به بوم برگردید و ویژگی ها را مانند قبل ویرایش کنید. این بار، ویژگی Name را برای هر دو جعبه متنی سانتیگراد و فارنهایت ویرایش کنید. از این نام ها می توان برای ارجاع به جعبه های متن در کد استفاده کرد. ویژگی ویجت مقدار جدید سلسیوس نام جعبه نوشتاری celsiusTextBox فارنهایت نام جعبه متن fahrenheitTextBox
  4. به تابع accountButton_Click در Form1.cs برگردید.
  5. اکنون می توان با استفاده از نام “celsiusTextBox” به کادر متنی Celsius در کد اشاره کرد. مقدار سلسیوسی که کاربر وارد کرده است در ویژگی Text آن ذخیره می شود. با این حال، از آنجایی که یک رشته است، آن را به یک دوتایی تجزیه کنید تا در محاسبات فارنهایت آینده لحاظ شود. private void calculateButton_Click(object sender, EventArgs e){    // مقداری را که کاربر در کادر متنی سلسیوس وارد کرده است را دریافت کنید. = Double.Parse(celsiusTextBox.Text);}
  6. متغیر celsiusValue اکنون مقداری را که کاربر در کادر متنی Celsius وارد کرده است ذخیره می کند. فرمول تبدیل درجه سانتیگراد به فارنهایت (celsiusValue * 9 / 5) + 32 است. بنابراین، اکنون نتیجه را می توان در کادر متنی فارنهایت محاسبه و ذخیره کرد.private void calculateButton_Click(فرستنده شی، EventArgs e){    // دریافت مقدار که کاربر در کادر متنی سلسیوس وارد کرده است    double celsiusValue = Double.Parse(celsiusTextBox.Text); // محاسبه را اعمال کنید   نتیجه مضاعف = (CVValue * 9/5) + 32; // نتیجه را در جعبه متن فارنهایت ذخیره کنید   fahrenheitTextBox.Text = result.ToString();}

private void calculateButton_Click(object sender, EventArgs e)

ویجت

مطلب مرتبط:   نحوه تبدیل دیکشنری پایتون به لیست

ویژگی

ارزش جدید

جعبه متنی درجه سانتیگراد

نام

celsiusTextBox

جعبه متن فارنهایت

نام

فارنهایت TextBox

private void calculateButton_Click(object sender, EventArgs e)
{
    // Get the value that the user entered in the Celsius Text Box
   double celsiusValue = Double.Parse(celsiusTextBox.Text);
}

private void calculateButton_Click(object sender, EventArgs e)
{
    // Get the value that the user entered in the Celsius Text Box
    double celsiusValue = Double.Parse(celsiusTextBox.Text);

   // Apply the calculation
   double result = (celsiusValue * 9 / 5) + 32;

   // Store the result in the Fahrenheit Textbox
   fahrenheitTextBox.Text = result.ToString();
}

چگونه برنامه Windows Forms را اجرا و اشکال زدایی کنیم

اجرای برنامه Windows Forms در ویژوال استودیو

اکنون که UI و منطق کد تنظیم شده است، برنامه را اجرا کنید تا عملکرد آن را ببینید.

  1. برای اجرای برنامه، فلش سبز رنگ بالای نوار ابزار ویژوال استودیو را انتخاب کنید.
  2. پس از بارگیری پروژه، یک مقدار را به کادر متنی سلسیوس اضافه کنید و دکمه محاسبه را فشار دهید. این نتیجه را به کادر متن فارنهایت اضافه می کند.
  3. اگر برنامه در زمان اجرا تار است، احتمالاً برنامه شما از DPI آگاه نیست. این می تواند باعث ایجاد مشکلات مقیاس و وضوح شود، بنابراین باید فعال شود. همچنین می‌توانید درباره پیکربندی مقیاس صفحه نمایش در ویندوز 10 برای نمایشگرهای با DPI بالا اطلاعات بیشتری کسب کنید.
  4. روی پروژه TemperatureConverter در Solutions Explorer کلیک راست کنید. Add را انتخاب کنید، سپس New Item را انتخاب کنید.
  5. فایل Manifest Application را جستجو کنید و روی Add کلیک کنید.
  6. کد زیر را به عنوان فرزند تگ اسمبلی در فایل app.manifest جدید کپی کنید (اگر کد از قبل تولید شده است، فقط آن را لغو نظر کنید).    true   true 
  7. برای اعمال این تغییر، برنامه را دوباره اجرا کنید. دکمه توقف قرمز را در بالای نوار ابزار انتخاب کنید، سپس دوباره دکمه سبز رنگ را انتخاب کنید.

برنامه Winforms را با استفاده از دکمه سبز بازی اجرا کنیدبرنامه Winform در حال اجرافایل Manifest را در ویژوال استودیو جستجو و انتخاب کنید

<application xmlns="urn:schemas-microsoft-com:asm.v3">
 <windowsSettings>
   <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
   <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
 </windowsSettings>
</application>

اشکال زدایی برنامه Windows Forms

اگر منطق برنامه Windows Forms شما مطابق انتظار کار نمی کند، ممکن است بخواهید برنامه را اشکال زدایی کنید.

  1. به تابع accountButton_Click در Form1.cs برگردید و در هر نقطه از نوار خاکستری در سمت چپ صفحه کلیک کنید. این یک نقطه شکست اضافه می کند که با یک دایره قرمز نشان داده می شود.
  2. دکمه “Calculate” را دوباره فشار دهید تا این روش اجرا شود. برنامه زمانی که به نقطه شکست برسد متوقف می شود تا تمام مقادیر ذخیره شده در متغیرها در آن نقطه را نشان دهد.
  3. برای ادامه برنامه، روی فلش سبز رنگ Continue در بالای نوار ابزار کلیک کنید.

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

اجرای برنامه با استفاده از یک فایل اجرایی

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

  1. به فایل اجرایی بروید که در اینجا یافت می شود:/bin/Debug/netcoreapp3.1/TemperatureConverter.exe
  2. برای اجرای مستقیم برنامه روی فایل اجرایی کلیک کنید.

<your-project-folder>/bin/Debug/netcoreapp3.1/TemperatureConverter.exe

افزودن موارد بیشتر به فرم ویندوز

امیدواریم اکنون درک اولیه ای از ساختار اساسی یک برنامه Windows Form داشته باشید. می‌توانید با آزمایش ابزارک‌های جدید و بررسی عمیق‌تر رویدادهای مختلف دیگری که می‌توان آن‌ها را مدیریت کرد، به بررسی ویژگی‌های فرم‌های ویندوز اضافی ادامه دهید.

هنگامی که با فرم های ویندوز بیشتر آشنا شدید، می توانید شروع به ایجاد برنامه های پیچیده تر کنید. شما همچنین می توانید بسیاری از راه های دیگر ایجاد برنامه های کاربردی در دسکتاپ ویندوز را بررسی کنید.

مطلب مرتبط:   Node.js در مقابل Deno: کدام یک برای پروژه شما مناسب است؟