در ادامه آموزش برنامه نویسی سی شارپ تحت ویندوز فرم، امروز سعی داریم کاربرد dialog ها در سی شارپ را همراه با مثال ساده ای شبیه برنامه نوت پد ( Notepad) به شما آموزش دهیم.(تذکر:در جلسه اول با محیط ویندوز فرم آشنا شدیم و همچنین کار کردن با دستورات را در آموزش برنامه نویسی تحت کنسول آموزش دادیم)
آموزش کاربرد dialog ها در سی شارپ با مثال
دیالوگ : به معنای محاوره یعنی کادری که کاربر می تواند با آن ارتباط برقرار کند. مثل برنامه Notepad
ابتدا کنترل ها را به صورت زیر از پنجره Toolbax روی فرم قرار می دهیم.
کنترل های مورد نیاز :
Textbox
1- خاصیت MultiLine آن را فعال می کنیم در حالت True خاصیت چند خطی کنترل Text فعال می شود .
2-خاصیت ScrollBars آن را روی Vertical قرار می دهیم با انتخاب این خاصیت اسکرول ها در TextBox نمایش داده میشوند
Button
در اینجا 5 تا کنترل Button مورد نیاز است که Text وName آن را مطابق تصویر زیر تغییر می دهیم.
Label : برای نمایش مسیر پوشه ای که انتخاب کردیم.
از Toolbax زبانه دیالوگ (Dialog)، دیالوگ های مورد نظر را انتخاب می کنیم.
- ColorDialog : برای تغییر رنگ، فونت ها و lable ها و … استفاده می کنیم.
- OpenFileDialog : برای باز کردن یک فایل در برنامه استفاده می کنیم.
- FontDialog : برای تغییر فونت در لحظه اجرا استفاده می شود.
- FolderBrowserDialog : برای browse کردن یک فولدر به کار می رود.
- saveFileDialog : برای ذخیره کردن فایل به کار می رود
که آموزش تک تک موارد بالا را در قالب یک مثال می بینیم.
نحوه کدنویسی :
ابتدا یک متغیر سراسری از نوع رشته ای تعریف می کنیم آن را بالاتر از همه دستورها قرار می دهیم تا در همه توابع شناخته شده باشند.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string File_Name; //متغییر سراسری
private void btnOpen_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = “txtFile(*.txt)|*.txt|AllFile(*.*)|*.*”;
//فیلتر اصلی بعد از علامت | می باشد قبل از آن فقط به صورت عنوان است
openFileDialog1.Title = “Notepad OpenDialog………….”;
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
File_Name = openFileDialog1.FileName;
textBox1.Text = System.IO.File.ReadAllText(File_Name);
}
}
private void btnSave_Click(object sender, EventArgs e)
{
saveFileDialog1.DefaultExt = “txt”;
// یعنی پیش فرضDefaultExt
saveFileDialog1.Filter=”txtFile(*.txt)|*.txt”;
saveFileDialog1.OverwritePrompt = true;
OverwritePrompt به معنای نوشتن دوباره یعنی پیغامی برات بیاد مبنی بر ذخیره کردن تغییرات وقتی در متن تغییر ایجاد میکنیم//
saveFileDialog1.Title = “Notepad SaveDialog………….”;
if(saveFileDialog1.ShowDialog()==DialogResult.OK)
{
File_Name = saveFileDialog1.FileName;
System.IO.File.WriteAllText(File_Name,textBox1.Text);
}
}
private void btnColor_Click(object sender, EventArgs e)
{
if(colorDialog1.ShowDialog()==DialogResult.OK)
{
textBox1.BackColor = colorDialog1.Color; //به معنای رنگ زمینه: BackColor
}
}
private void btnFont_Click(object sender, EventArgs e)
{
fontDialog1.ShowColor = true;
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Font = fontDialog1.Font;
textBox1.ForeColor = fontDialog1.Color;
رنگ متن به معنای: ForeColor//
}
}
private void btnFolder_Click(object sender, EventArgs e)
{
folderBrowserDialog1.Description = “Select Folder………… “;
folderBrowserDialog1.ShowNewFolderButton = true;
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
label1.Text = folderBrowserDialog1.SelectedPath;
//یعنی مسیری که من انتخاب کردم:SelectedPath
}
}
کاربرد dialog ها در سی شارپ را با هم در یک مثال مشاهده کردیم در جلسه بعد نوشتن این برنامه را با استفاده از نوار منو آموزش خواهیم داد. با ما همراه باشید.
سلام ممنون برای اموزش
فقط یه سوال دارم راجب این سیو فایل دیالوگ و openfiledialog خیلی راجب این سوال گشتم اما پیدا نکردم جوابمو
چجور میتونم با دادن دستور بدون استفاده از showdialog ادرسی رو بدم که فایل روئ اونجا ذخیره کنه یا اونجا فایل رو باز کنه
به عنوان مثال من میخوام یه فایل Text رو توی درایو C ذخیره کنم اما نمیخوام که کادر انتخاب ادرس برام باز شه و خودم از طریق دستور ادرس رو داده باشم و اون فقط عملیات رو انجام بده
سلام وعرض ادب
شما با استفاده از کلاس Process که بخشی از using System.Diagnostics است. می توانید این مشکل را حل کنید .مثلا می توانید با استفاده از دستورات زیر بدون استفاده از دیالوگ ، openfiledialog فایل مورد نظرتان را باز کنید .
string FileName = “مسیر فایل “;
(System.Diagnostics.Process.Start(FileName;
با تشکر و سپاس از همراهی شما