Jeff Mosawy
- مقدمه
نحوه قرار دادن یک عکس در فرم را مشاهده کردید، اما این تنها زمانی بهکار میآید که عکس از قبل تعیین، و توسط خود برنامهنویس قرار داده شده باشد.
حال فرض کنید که بخواهید یک قابلیتی را به کاربر بدهید که بتواند خودش در زمان اجرای برنامه، عکسی را با استفاده از یک فرم Open Dialog Box وارد برنامه کرده و آن را مشاهده کند. در این جلسه نحوه انجام این کار را به شما آموزش خواهیم داد.
- ایجاد یک Open File Dialog
یک نگاهی به Tool Box بیاندازید. یک بخشی با نام Dialogs وجود دارد که در این بخش حدود ۶ مورد مختلف وجود دارند.

انواع مختلفی از دیالوگها که ممکن است آنها را در محیط Windows دیده باشید در این لیست وجود دارد. گزینهای که در عکس بالا انتخاب شده، گزینه مورد نظر ماست. بر روی آن Double-Click کنید (دوبار کلیک کنید.)؛ مشاهده خواهید کرد که یک گزینهی جدیدی در پایین برنامه Visual Studio اضافه میشود. این گزینه دقیقاً در کنار menuStrip1 میباشد.

همانطور که متوجه شدید، چیزی در فرم شما (بر خلاف menuStrip) نمایش داده نشد، چرا که Open File Dialog یک پنجرهی مخفیای است که تنها در صورت نیاز قابل مشاهده خواهد بود.
به پنجره Properties مربوط به OpenFileDialog مراجعه کنید و مشخصه Name آن را به یک نام کوتاهتر تبدیل میکنیم. مثلاً:
Name: OpenFD

وقتی که نام آن را عوض میکنید، متقابلاً باید نام آن در پایین پنجره Visual Studio نیز تغییر پیدا کند.
![]()
در حالی که شیء OpenFD در حالت انتخابشده (Selected) میباشد، یک نگاه دیگری به پنجره Properties بیاندازید. شما مشاهده خواهید کرد که مشخصههایی همچون: Filter، File Name، InitialDirectory و Title وجود دارند. ما این مشخصهها را توسط کد تغییر خواهیم داد؛ نه داخل خود ToolBox.
موضوع دیگری که میبایست در ذهن خود داشته باشید این است که Open File Dialog در واقع فایلی را باز نمیکند! کاری که دیالوگها انجام میدهند این است که به شما این اجازه را بدهند که فایلی را برای باز شدن انتخاب کنید. شما میبایست کد جداگانهای را برای باز شدن فایلها بنویسید. تنها کاری شما در حال حاضر در حال انجام آن هستید، دریافت اسم فایل است.
ما فعلاً میخواهیم کاری کنیم که اگر کاربر بر روی گزینه View Images از منوی View کلیک کنید، پنجره Open File برای وی نمایش داده شود. برای اینکار بر روی View Images دوبار کلیک کنید تا وارد کدهای مربوط به آن شویم.

برای اینکه پنجره دیالوگ به نمایش در آید، کد زیر را مابین دو پرانتز قرار دهید:
openFD.ShowDialog();
فکر نمی کنم که کد بالا نیازی به توضیح داشته باشد. در واقع ما به کامپایلر میگویم که تابع ShowDialog را از شیء openFD فراخوانی کن.
حال برنامه خود را اجرا کنید و سعی کنید بر روی View Images کلیک کنید. پنجرهای به شکل زیر برای شما نمایش داده خواهد شد.

بدلیل اینکه ما کاری جز نوشتن کدی برای باز کردن پنجرهی فوق نکردیم، خیلی از اتفاقات بهصورت پیشفرض در نظر گرفته شده است. مثلاً محل اولیه باز شدن بهصورت پیشفرض Document در ویندوز ۷ میباشد. نام فایل بهصورت پیشفرض openFileDialog1 در نظر گرفته شده. تمامی این موارد (و خیلیهای دیگر) را میتوانیم بهراحتی عوض کنیم.
کارها را بهترتیب انجام میدهیم. اول بیاییم یک عنوان (Title) برای پنجره دیالوگ انتخاب کنیم. کد زیر را اضافه کنید:
openFD.Title = “Insert an Image”;
شما هرچیزی را داخل کوتیشن میتوانید بنویسید. در واقع Title، نمایشگر عنوان پنجره است که در ویندوزهای XP و ویندوز ویستا و ۷، بهصورت زیر است:


کار بعدیای که میتوانیم آن را انجام دهیم، تغییر محل باز شدن فایلها میباشد. برای مثال، کد زیر را قبل از دو خط کد قبلی قرار دهید.
openFD.InitialDirectory = “C:”;
ما مسیر پیشفرض را بر روی درایو C قرار دادیم. در واقع ما اینطور فرض کردیم که تمامی کاربرها یک درایو C در کامپیوترشان موجود است. اما اگر بخواهیم که مسیر را بر روی My Document قرار دهیم (چون میدانیم همه کاربران این فولدر را به هر نحوی دارا هستند)، کد زیر را جایگزین کنید:
openFD.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal)
برای تغییر نام فایل بهصورت پیشفرض، از کد زیر استفاده میکنیم:
openFD.FileName = ““;
با قرار دادن یک نام در داخل کوتیشنها، میتوانید نام پیشفرض برنامه را تعیین کنید. ما آن را مقدار خالیای قرار دادیم تا چیزی در دیالوگ نمایش داده نشود.
یکی از مهمترین کارها (و شاید هم جالبترین آنها) تعیین File Type ها هستند. بدین صورت که ما تعیین میکنیم که چه نوع (فرمت) فایلی میتوانید در برنامه بارگذاری شود. به نمونههای زیر دقت کنید.

و

برای انجام اینکار، الگوی زیر را یاد بگیرید.
openFD.Filter = “JPEG|*.jpg”;
کد بالا تنها فایلهایی با پسوندهای JPG را قبول خواهد کرد و پنجره دیالوگ شما به شکل زیر خواهد بود:

برای اضافه کردن فرمتهای دیگر، بهشکل زیر عمل میکنیم:
openFD.Filter = “JPEG Images|*.jpg|GIF Images|*.gif|PNG|*.png”;
برای اضافه کردن گزینه آخر که معمولاً با عنوان All files میباشد، میتوانیم بهشکل زیر عمل کنیم:
openFD.Filter = “JPG|*.jpg|All files|*.*”;
در این جلسه نحوه ایجاد دیالوگ باکس را فرا گرفتید. در جلسه آینده، نحوه بارگذاری عکس را در سیشارپ آموزش خواهیم داد.
جهت دریافت این بخش آموزشی بهصورت یک فایل PDF، اینجا را کلیک کنید.
