اجرای برنامه در فرم سی شارپ

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

دقیقا چیزی شبیه Run ای که داخل ویندوز است:

اجرای برنامه در فرم سی شارپ

ابتدا فرمی شبیه فرم بالا طراحی می کنیم:

اجرای برنامه در فرم سی شارپ

نحوه اجرای فایل ها:

private void button1_Click(object sender, EventArgs e)

 Process کلاسی است داخل پوشه ی Diagnostics//

{
System.Diagnostics.Process.Start(textBox1.Text);
}

System.Diagnostics یک using یا کتابخانه است که می توانیم در قسمت بالای پنجره ویندوز فرم همان جایی که usingها تعریف شده است تعریف کنیم یا مستقیم اینجا بنویسیم.نحوه نوشتن آن:

using System.Diagnostics;

برنامه را اجرا می کنیم:

اجرای برنامه در فرم سی شارپ

اجرای برنامه در فرم سی شارپ

مشاهده می کنیم که برنامه Notepad را برای ما باز کرد . الان به یک مشکل برمی خوریم اگر کاربر برنامه ای را که اصلا وجود ندارد را وارد کند Error می دهد

برای مدیریت کردن Error ها دستوری داشتیم بنام TryCatch که از آن استفاده می کنیم

private void btnRun_Click(object sender, EventArgs e)
{
try
{
System.Diagnostics.Process.Start(textBox1.Text);
}
catch
{
MessageBox.Show(” قادر به اجرای این برنامه نیستم “);
}
}

اجرای برنامه در سی شارپ

اجرای برنامه در فرم سی شارپ

اگر کاربر خواست که برنامه مورد نظرش را از داخل هارد جستجو کند، بدین صورت می نویسیم:

private void btnBrowes_Click(object sender, EventArgs e)

{

try
{
OpenFileDialog O = new OpenFileDialog();
if (O.ShowDialog() == DialogResult.OK)
System.Diagnostics.Process.Start(O.FileName);
}
catch
{
MessageBox.Show(” قادر به اجرای این برنامه نیستم “);

}
}

برنامه را اجرا می کنیم، دکمه Browse که زدیم داخل پنجره ای که باز شد فایل مورد نظرمان را انتخاب می کنیم:

اجرای برنامه در فرم سی شارپ

 

مثلا مسیر جاری برنامه را نمایش دهد:

private void btnHelp_Click(object sender, EventArgs e)

{

MessageBox.Show(Application.StartupPath);

}

اجرای برنامه در سی شارپ

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

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{

try
{
if(e.KeyChar==(char)13)
System.Diagnostics.Process.Start(textBox1.Text);
}
catch
{
MessageBox.Show(” قادر به اجرای این برنامه نیستم “);
}
}

اگر با کد اسکی آشنا نبودیم می توانیم داخل رویداد KeyDown تکست بنویسیم:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
try
{

if (e.KeyCode == Keys.Enter)

System.Diagnostics.Process.Start(textBox1.Text);
}
catch
{
MessageBox.Show(” قادر به اجرای این برنامه نیستم “);
}
}

یک توضیح کوتاه برای دستور Trycatch می دهیم تا بهتر آن را درک کنید.

دستور Trycatch

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

روش کلی:

try

{
کد های اصلی برنامه
}
catch
{
مدیریت خطا
}
finally
{

پیغام پایانی (چه خطا رخ بدهد چه خطایی رخ ندهد چکار کند) 

}

مثال : با هم برنامه ای می نویسیم تا با کاربرد این دستور آشنا شویم کنترل های PictureBox و Button روی فرم قرار می دهیم:

مشخصه ی SizeMode کنترل PictureBox برابر StretchImage قرار می دهیم و مشخصه ی BorderStyle کنترل PictureBox برابر Fixed3D قرار می دهیم. مشخصه ی Text کنترل Button را Open در نظر می گیریم

دستور Trycatch

private void button1_Click(object sender, EventArgs e)

{

OpenFileDialog Open = new OpenFileDialog();
Open.ShowDialog();
pictureBox1.Image = Image.FromFile(Open.FileName);

مسیر عکس را به کمک Open.FileName داده به کنترل pictureBox1 و ازش خواستیم آن را به ما نمایش بده//

}

برنامه را اجرا می کنیم. وقتی کاربر یک عکس با پسورد *.jpg و … را انتخاب می کند و دکمه ی Open را می زند هیچ مشکلی نیست ولی اگر یک فایل (مثلا فایل تکستی ) را انتخاب کند و یا اینکه دکمه Cansel را بزند خطا می دهد و از برنامه خارج می شود.

برای رفع این شکل برنامه را بدین صورت تغییر می دهیم :

private void button1_Click(object sender, EventArgs e)

{
OpenFileDialog Open = new OpenFileDialog();

Open.Filter = “image|*.jpg”; //مدیریت ارور پسورد

if (Open.ShowDialog() == DialogResult.OK) // Cansel مدیریت ارور

{
pictureBox1.Image = Image.FromFile(Open.FileName);

}

}

برنامه را اجرا می کنیم، تقریبا برنامه درست اجرا می شود چون مشکل پسورد و Cansel مدیریت شده است حالا اگر یک فایل تکستی را با پسورد jpg ذخیره کنیم باز error می دهد در اینجاست که باید از دستور trycatch برای مدیریت خطا استفاده کنیم.

private void button1_Click(object sender, EventArgs e)

{
OpenFileDialog Open = new OpenFileDialog();
Open.Filter = “image|*.jpg”;
try
{
if (Open.ShowDialog() == DialogResult.OK)
pictureBox1.Image = Image.FromFile(Open.FileName);

}
catch
{
MessageBox.Show(“error457”);
}
finally
{
MessageBox.Show(“*****”);

}
}

برنامه را اجرا می کنیم، اگر فایل تکستی که با پسورد jpg ذخیره کرده ایم را انتخاب کنیم با پیغام زیر مواجه می شویم:

دستور Trycatch

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