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

آموزش سی شارپ قسمت 46 : Open File Dialog Box


در این تمرین این امکان را برای کاربر فراهم می کنیم تا بتواند تصویر دلخواه خود را انتخاب و به picture box اضافه کند.

برای این کار باید هنگامی که کاربر آیتم  View > View Images را انتخاب کرد یک Open File dialogue box را نمایش دهیم.

Dialog Box ها با کمک یک برنامه داخلی در #C اضافه می شوند.

در سمت چپ  #Visual C به به جعبه ابزار نگاهی بیاندازید. در این قسمت یک دسته بنام Dialogs قرار دارد:

The Dialogs Tools in Visual C# .NET

تمام Dialog هایی که در ویندوز می شناسید و با آنها سروکار دارید در این لیست وجود دارند. آیتمی که در تصویر بالا مشخص شده و با آن کار خواهیم کرد OpenFileDialog نام دارد. 

بر روی آیتم OpenFileDialog دابل کلیک کنید. یک آیتم جدید در پایین  #Visual C در کنار آیتم menuStrip1 ظاهر می شود.

An OpenFileDialog control added to a form

با وجود این بر روی فرم چیزی دیده نمی شود زیرا کنترلهای Dialog از دید پنهان هستند. اسم آیتمی که در تصویر بالا دیده میشود openFileDialog1 است. این نام کمی طولانیست . در پنجره Properties در سمت راست خصوصیت Name را به openFD تغییر دهید .

Change the Name Property to openFD

در پایین #Visual C نیز نام کنترل باید تغییر کند.

The Name has been changed

در حالیکه که کنترل را انتخاب کرده اید به پنجره  Properties نگاه کنید. برای FilterFileNameInitialDirectory و Tiltle خصوصیاتی وجود دارد. این خصوصیات را با کد عوض خواهیم کرد. 

اما آنچه در مورد File Dialogue box باید بخاطر داشته باشیم اینست که عملا فایلی را باز نمی کند!.  کاری که File Dialogue box و سایر کنترلهای هم رده آن انجام میدهند تنها فراهم کردن امکان انتخاب فایلهاست. برای باز کردن فایلها باید کد جداگانه ای بنویسید. کاری که باید انجام دهیم اینست که به نام فایل دسترسی پیدا کنیم. میخواهیم هنگامی که View > View Images را انتخاب می کنیم dialogue box ظاهر شود.

در منوی View بر روی این آیتم دابل کلیک کنید. پنجره کد ظاهر میشود.

C# code stub for a menu item

برای دیدن Open Dialogue box خط زیر را به کد در بین براکتها { } اضافه نمایید:

openFD.ShowDialog();

ابتدا نام کنترل را تایپ می کنیم و سپس یک نقطه " . " میگذاریم و بعد از نقطه " . " گزینه ShowDialog را از لیست IntelliSense انتخاب می کنیم. همانطور که از گزینه  ShowDialog پیداست وظیفه آن نشان دادن Dialog Box است.

برنامه را اجرا و آن را امتحان کنید.

هنگامی که از منو View > View Images را انتخاب می کنید تصویر زیر ظاهر خواهد شد:

The Open Dialogue Box

در حال حاضر چون خصوصیتی را تنظیم نکرده ایم دایرکتوری پیش فرض Document ویندوز نمایش داده می شود. 

openFileDialog1 به عنوان نام فایلی که میخواهیم باز کنیم تنظیم شده. تمام این موارد را میتوانید تغییر دهید.

ابتدا یک عنوان تعریف می کنیم. عنوان پیشفرض کلمه Open است. قبل از خط اول خط زیر را اضافه کنید:

openFD.Title = "Insert an Image";

در اینجا عبارت "Insert an Image"  برای ویژگی Title تنظیم می کنیم. . البته می توانید هر عبارت دیگری که دوست دارید در اینجا قرار دهید.

هنگامی که برنامه را اجرا می کنید و آیتم منو را انتخاب می کنید عنوان جدید مانند تصویر زیر ظاهر خواهد شد:

Changing the Title property

مورد دیگری که میتوانیم تغییر دهیم دایرکتوری است که قرار است در آن بدنبال فایل بگردیم. این مکان بطور پیشفر بر روی  Debug folder تنظیم شده است. میتوانیم آنرا بر روی InitialDirectory  قرار دهیم.

خط زیر را قبل از دو خط دیگر قرار دهید:

openFD.InitialDirectory = "C:";

دایرکتور پیشفرض را بر روی C تنظیم می کنیم. فرض می کنیم که هارد دیسک کاربر یک درایو C دارد. اگر میخواهید که دایرکتور MyDocument را به عنوان دایرکتوری پیشفرض تنظیم کنید به جای "C" بعد از علامت مساوی خط زیر را اضافه کنید:

= System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);

این کد دایرکتوری MyDocument را بعنوان دایرکتوری پیشفرض قرار میدهد. (دایرکتوری شخصی) که در ویندوز به نام Document شناخته می شود. دلیل استفاده از این روش اینست که هر کاربری user name مخصوص به خود را دارد.

برنامه را اجرا کنید. مکان پیشفرض در بالا باید تغییر کرده باشد:

InitialDirectory property

برای اسم فایل از ویژگی File Name استفاده می کنیم.

این خط کد را قبل از آخرین خط اضافه کنید:

openFD.FileName = "";

به آنچه که بعد از علامت مساوی = آمده توجه کنید.

"JPEG|*.jpg";

فیلتر باید بین علامت "   "  نوشته شود.

نوع فایل که میخواهید در لیست آبشاری نمایش داده شود قبل از علامت " | " مینویسید. میتوانید هر عبارتی که دوست دارید اینجا تایپ کنید. بعنوان مثال بجای JPEG میتوانید JPEG images را تایپ کنید. 

بعد از  کاراکتر " | " از علامت  " * " به همراه " . " استفاده می کنیم. کاراکتر " * " به معنی "هر فایلی با هر نامی " است . بعد از " . " نام پسوندی که میخواهیم فیلتر کنیم تایپ می کنیم.

برنامه را اجرا و آن را امتحان کنید. تنظیمات بالا در لیست "Files of type" در سمت راست  textbox دیده خواهد شد.

Filtering for JPEG images in C#

حال کد را بصورت زیر تغییر دهید:

openFD.Filter = "JPEG Images|*.jpg";

لیست  "Files of type" بصورت زیر خواهد بود:

استفاده از یک فیلتر به این معنی است که سایر پسوندها نشان داده نخواهند شد. برای اضافه کردن فایلهایی با پسوندهای دیگر  مجددا از کاراکتر " | " استفاده می کنیم. در اینجا GIF images  را نیز اضافه می کنیم. 

کد را بصورت زیر تغییر دهید:

openFD.Filter = "JPEG Images|*.jpg|GIF Images|*.gif";

همانطور که می بینید کد کمی نامرتب شده است. توجه داشته باشید که هر نوع فایل را با کاراکتر " | " از دیگری جدا کرده ایم. برای تنظیم پسوند نیز از یک کاراکتر " | " دیگر استفاده می کنیم. برای اضافه کردن تصاویر Bitmap کد بصورت زیر میشود:

openFD.Filter = "JPEG Images|*.jpg|GIF Images|*.gif|BITMAPS|*.bmp";

در زیر چند نوع فایل دیگر با پسوندهای مختلف آورده ایم:

TIFF Images: *.tif or *.tiff
PNG Images: *.png
PICT Images: *pct or *.pict

پسوندها زیاد هستند. در تصویر زیر لیست را برای جستجوی فایلهای Jpeg ، Gif و Bitmap تنظیم کرده ایم:

Three image types have been filtered for

اگر میخواهید هر فایلی با هر پسوندی را انتخاب نمایید مانند مثال زیر بجای پسوند از کاراکتر " * " استفاده کنید :

openFD.Filter = "JPEG Images|*.jpg|All Files|*.*";

با این حال هنوز تصویری وارد برنامه نکرده ایم. برای وارد کردن یک تصویر انتخاب شده در imagebox باید نام فایلی را که کاربر انتخاب کرده داشته باشیم. برای این کار یک متغیر متنی string به کد اضافه می کنیم.

string Chosen_File = "";

با کد زیر به خصوصیت FileName متغیر openFD دست پیدا می کنیم:

Chosen_File = openFD.FileName;

اسم فایل در متغیری بنام Chosen_File ذخیره می شود.

برای قرار دادن تصویری در image box موجود در فرم به خصوصیت image آن نیاز داریم:

pictureBox1.Image

برای قرار دادن تصویر انتخاب شده در خصوصیت image کد زیر را می نویسیم:

pictureBox1.Image = Image.FromFile(Chosen_File);

بعد از علامت مساوی " = " از آیتم Image استفاده می کنیم. این روش بنام ( )FromFile نامیده می شود. در بین پرانتز نام تصویر را می نویسیم. این نام در متغیر Chosen_File ذخیره شده است.

خطوط جدید را به کد اضافه کنید. کد باید بصورت زیر باشد:

C# code for the View Images menu item

برنامه را اجرا و آن را امتحان کنید. تصویر جدید جانشین تصویر قبلی در  picture box می شود.

با این حال مشکلی در کد وجود دارد. بجای کلیک کردن open دکمه cancel را کلیک کنید.

بعلت کلیک کردن cancel هیچ نام تصویری در متغیر Chosen_File وجود ندارد. بنابراین برنامه دچار باگ می شود. باید این باگ را درکد برطرف کنیم.

برای کنترل اینکه دکمه cancel کلیک شده کد زیر را اضافه میکنیم:

if (openFD.ShowDialog() = = DialogResult.Cancel)
{

MessageBox.Show("Operation Cancelled");

}

در ایجا از یک آیتم داخلی بنام DialogResult استفاده می کنیم. کنترل می کنیم که آیا این متغیر مقداری برابر cancel دارد یا نه . برای این منظور یک دستور else به کد اضافه می کنیم:

The complete code

کد را بصورت بالا تغییر دهید و برنامه را اجرا کنید. خواهید دید که با کلیک بر روی cancel برنامه دیگر دچار خطا نمی شود.

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

if (openFD.ShowDialog() != DialogResult.Cancel)
{

Chosen_File = openFD.FileName; 

در اینجا از عملگر NOT استفاده می کنیم. ( ! ) با این کد چک می کنیم که متغیر DialogResult مساوی با cancel نباشد.

در تمرین بعدی از Open File Dialogue box برای قرار دادن یک فایل متنی  در Textbox استفاده خواهیم کرد.

فصلِ: 1 , تعداد قسمت ها: 9 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

آموزش ارسال پیامک، آموزش ارسال پیامک تکی و گروهی ، ارسال پیامک به صورت اختصاصی برای هر مشترک، دریافت پیامک، مشاهده وضعیت…

توضیحات کلی مجموعه:   آیا می دونید قیمت نرم افزارهای مدیریت پیامک در حدود 150 هزار تومان است؟ اما توسط این دوره شما میتونید با مبلغ بسیار کمتر یک نرم افزار مدیریت پیامک رو به صورت کاملا حر…
فصلِ: 9 , تعداد قسمت ها: 59 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

در این فصل که فصل پایانی این دوره می باشد در مورد نحوه ساختن فایل نصبی سریع یا همان quick installer که روش پیشنهاد شده م…

توضیحات کلی مجموعه: پس از بازخوردهای بسیار خوبی که از دوره های آموزش برنامه نویسی سیستم اتوماسیون اداری و آموزش برنامه نویسی سیستم فروش و انبارداری مشاهده کردیم، تصمیم گرفتیم با توجه به درخ…
فصلِ: 13 , تعداد قسمت ها: 120 , سطح: صفر تا صد
موضوعات: آموزش سی شارپ

این فصل در یک نگاه:

در این فصل که فصل آخر از مجموعه بزرگ آموزش سیستم اتوماسیون اداری می باشد در ابتدا در مورد اسناد و نامه های خارج از سازما…

دوره صفر تا صد  آموزش برنامه نویسی و پیاده سازی سیستم اتوماسیون اداری تحت شبکه. (توصیه می شود دومی مجموعه را حتما ببینید) امروزه اطلاعات یکی از مهمترین و با ارزشترین منابع هر اداره و یا ساز…
فصلِ: 4 , تعداد قسمت ها: 14 , سطح: مقدماتی

این فصل در یک نگاه:

توضیح تنظیمات گرافیک و صدا در یونیتی پیاده سازی منو ها …

به نام خدا   بازی‌سازی یک حرفه بسیار جذاب است و تبدیل شدن به یک بازی‌ساز حرفه‌ای آرزوی همه ماست. اینکه بتوانیم دنیای خاصی خلق کنیم و در این دنیا قوانین خود را پیاده کنیم، همیشه ما را به وج…
فصلِ: 11 , تعداد قسمت ها: 92 , سطح: صفر تا صد

این فصل در یک نگاه:

اجرای سیستم روی سیستم، قرار دادن سیستم روی سرور، تعریف Connetion String، آشنایی با فایل App.config، ساخت رشته اتصال به ص…

مهمترین تکنولوژیهای استفاده شده در این دوره پروژه محور (سیستم فروش کالا و انبارداری) طراحی گرافیکی به روش WPF (Windows Presentaion Foundation) آموزش کامل برنامه نویسی xaml (برای طراحی های …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید