دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل pageSetupDialog در سی شارپ
1404/05/03 -
نقش (Role) در Sql Server
1404/05/02 -
کنترل OpenFileDialog در سیشارپ
1404/04/31 -
ایجاد و مدیریت کاربر (User) در Sql Server
1404/04/30 -
کنترل MonthCalendar در سیشارپ
1404/04/29 -
مدیریت کاربران (Users ) در SQL Server
1404/04/28
کنترل OpenFileDialog در سیشارپ

📌 مقدمه
در توسعه نرمافزارهای ویندوزی با زبان برنامهنویسی #C، بسیاری از مواقع نیاز است تا کاربر بتواند فایلی را از روی سیستم خود انتخاب کرده و به برنامه معرفی کند.
برای این منظور، کنترل قدرتمندی به نام OpenFileDialog در محیط WinForms ارائه شده است. این کنترل پنجرهای گرافیکی را به کاربر نمایش میدهد که در آن میتواند فایلهایی را از سیستم خود انتخاب کند.
OpenFileDialog یکی از پرکاربردترین کنترلهای ورودی فایل در برنامهنویسی دسکتاپ است که فرآیند انتخاب فایل را بسیار ساده و کاربرپسند میسازد.
📚 مفهوم OpenFileDialog در #C
OpenFileDialog کلاسی از فضای نام System.Windows.Forms است که پنجرهای استاندارد برای انتخاب فایلها از سیستم عامل باز میکند.
این کنترل، فایلهای انتخابشده را به برنامه معرفی میکند تا بتوان از آنها برای پردازش، خواندن یا بارگذاری استفاده کرد.
✅ مزایای OpenFileDialog در سیشارپ
1. رابط کاربری استاندارد و بومی ویندوز (Native UI)
OpenFileDialog از پنجره استاندارد ویندوز استفاده میکند.
برای کاربران کاملاً آشناست و نیازی به آموزش ندارد.
تجربه کاربری یکنواخت با سیستمعامل ایجاد میکند.
2. سادگی در پیادهسازی
تنها با چند خط کد قابل اجراست.
نیازی به طراحی رابط کاربری دستی ندارد.
درون کلاسهای فرم یا تابع میتوان آن را سریع استفاده کرد.
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
string path = ofd.FileName;
}
3. پشتیبانی از فیلتر کردن نوع فایلها
میتوان فقط نوع خاصی از فایلها را قابل انتخاب کرد (مثلاً فقط تصاویر یا فقط PDFها).
به جلوگیری از انتخاب فایلهای نامناسب کمک میکند.
ofd.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
4. قابلیت انتخاب چند فایل بهطور همزمان (MultiSelect)
کاربر میتواند چند فایل را با هم انتخاب کند.
مناسب برای اپلیکیشنهایی که نیاز به پردازش فایلهای گروهی دارند.
ofd.Multiselect = true;
5. قابلیت تنظیم مسیر پیشفرض (InitialDirectory)
میتوان تعیین کرد که پنجره از کدام پوشه سیستم باز شود.
سرعت انتخاب فایل را برای کاربر افزایش میدهد.
ofd.InitialDirectory = @"C:\Users\Documents";
6. خواندن خودکار مسیر فایل انتخابشده
ویژگی FileName مسیر کامل فایل انتخابی را برمیگرداند.
بدون نیاز به تحلیل دستی یا استفاده از توابع مسیریابی.
7. ایمنسازی انتخاب فایل
با ویژگیهای CheckFileExists و CheckPathExists، فقط فایلهای معتبر و مسیرهای موجود انتخاب میشوند.
مانع از بروز خطاهای رایج در مسیرهای اشتباه میشود.
8. پشتیبانی از افزودن پسوند پیشفرض (DefaultExt + AddExtension)
اگر کاربر پسوند فایل را وارد نکند، بهطور خودکار افزوده میشود.
جلوگیری از ذخیره فایل با نام ناقص یا مشکلدار.
9. قابلیت تنظیم عنوان پنجره (Title)
امکان نمایش عنوان دلخواه (مثلاً "انتخاب تصویر محصول").
حرفهایتر و سازگار با نیاز برنامه میشود.
10. پشتیبانی از گزینه Read-Only (نمایش و کنترل تیک فقطخواندنی)
در موارد خاص میتوان گزینه "Read-Only" را فعال کرد.
در نرمافزارهای تخصصی فایلخوانی مفید است.
11. امکان استفاده در پروژههای بزرگ و چندزبانه
از آنجا که یک کلاس داخلی NET. است، به سادگی در پروژههای چندزبانه (فارسی، انگلیسی، عربی و ...) کار میکند.
کاملاً با استانداردهای برنامهنویسی شیگرا سازگار است.
12. پشتیبانی از فایلهای شبکه و میانبرها
امکان انتخاب فایلها از شبکههای اشتراکی (Shared folders).
پشتیبانی از میانبرها (Shortcuts) و ترجمه آنها به مسیر واقعی فایل.
13. پشتیبانی از Validating Names
اطمینان از اینکه نام فایلها معتبر و قابلقبول برای سیستم عامل باشند.
مناسب برای نرمافزارهای ذخیرهسازی دقیق فایلها.
14. سازگاری بالا با سایر کلاسهای فایل
ترکیب راحت با File, StreamReader, Image.FromFile, XmlDocument و غیره.
استفاده مستقیم برای خواندن محتوا یا بارگذاری فایل در برنامه.
🧾 ویژگیهای مهم OpenFileDialog در #C
نام ویژگی | نوع داده | توضیح |
---|---|---|
FileName | string | مسیر کامل فایل انتخابشده را برمیگرداند. در حالت Multiselect فقط فایل اول را نشان میدهد. |
FileNames | string | آرایهای از مسیرهای کامل فایلهایی که انتخاب شدهاند (در حالت Multiselect). |
Filter | string | نوع فایلهایی که در پنجره قابل نمایش و انتخاب هستند. فرمت: "Description|*.ext" |
FilterIndex | int | شماره اندیسی فیلتر انتخابشده در پنجره (شروع از 1). |
InitialDirectory | string | مسیر پیشفرضی که پنجره از آنجا باز میشود. |
Multiselect | bool | اگر true باشد، کاربر میتواند چند فایل را انتخاب کند. پیشفرض false. |
Title | string | عنوان (Title) پنجرهی انتخاب فایل. |
DefaultExt | string | پسوند پیشفرض فایل، اگر کاربر پسوند وارد نکند (مثلاً "txt"). |
CheckFileExists | bool | اگر true باشد، فقط فایلهایی که وجود دارند را میپذیرد. پیشفرض true. |
CheckPathExists | bool | اگر true باشد، فقط مسیرهایی که واقعاً وجود دارند را میپذیرد. پیشفرض true. |
RestoreDirectory | bool | اگر true باشد، پس از بستن پنجره، مسیر فعلی برنامه به مسیر قبل بازمیگردد. |
ReadOnlyChecked | bool | وضعیت تیک گزینه "Read-Only" در پنجره را مشخص میکند. (معمولاً برای نمایش فقط خواندنی) |
ShowReadOnly | bool | اگر true باشد، گزینهای به نام "Read-Only" در پنجره نمایش داده میشود. |
ValidateNames | bool | بررسی میکند که نام فایل معتبر باشد. پیشفرض true. |
AddExtension | bool | اگر true باشد و کاربر پسوند وارد نکند، DefaultExt اضافه میشود. |
🧱 مراحل استفاده از OpenFileDialog در #C
ما به دو روش میتونیم ازش استفاده کنیم
روش اول استفاده OpenFileDialog به صورت کد نویسی
1. ایجاد نمونه از OpenFileDialog
OpenFileDialog openFileDialog = new OpenFileDialog();
2. تنظیم فیلتر نوع فایلها (اختیاری)
openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
3. نمایش پنجره و بررسی نتیجه
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = openFileDialog.FileName;
// استفاده از مسیر فایل
}
روش دوم استفاده OpenFileDialog به صورت حالت درگ کردن شی OpenFileDialog
ویژوال استودیو را باز کن و وارد فرم مورد نظر شو.
از پنل Toolbox (سمت چپ معمولاً)، بخش Dialogs یا جستجو، گزینه OpenFileDialog را پیدا کن.
روی کنترل کلیک کرده و با ماوس آن را بکش (Drag) و روی فرم رها کن (Drop).

آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
شرکت در دوره آموزش برنامه نویسی سی شارپ
🧪 مثالهای کاربردی کنترل OpenFileDialog
مثال 1: انتخاب فایل متنی و نمایش محتوای آن در TextBox
private void btnLoadFile_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Text Files (*.txt)|*.txt";
if (ofd.ShowDialog() == DialogResult.OK)
{
string text = File.ReadAllText(ofd.FileName);
txtContent.Text = text;
}
}
مثال 2: انتخاب چند فایل تصویر و نمایش نام آنها
private void btnSelectImages_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Image Files (*.jpg;*.png)|*.jpg;*.png";
ofd.Multiselect = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
foreach (string fileName in ofd.FileNames)
{
lstFiles.Items.Add(Path.GetFileName(fileName));
}
}
}
🔁 بروزرسانی و حذف کنترل OpenFileDialog
کنترل OpenFileDialog یک کنترل غیرویژوال (Non-visual) است و هر بار که به آن نیاز داریم، باید نمونهای جدید از آن ایجاد شود. برای بروزرسانی تنظیمات آن، کافی است ویژگیهای آن مانند Filter, Title, InitialDirectory و ... را مقداردهی کنیم.
برای حذف نیز نیازی به پاکسازی دستی نیست، زیرا پس از بسته شدن پنجره، شیء مورد نظر توسط Garbage Collector مدیریت خواهد شد.
❓ سوالات متداول کنترل OpenFileDialog
❓ آیا میتوان فایلهایی غیر از متن را نیز با OpenFileDialog انتخاب کرد؟
بله. با استفاده از Filter میتوانید فایلهای هر نوعی را محدود یا مجاز کنید.
❓ چگونه میتوان انتخاب چند فایل را فعال کرد؟
با تنظیم ویژگی Multiselect = true.
❓ آیا میتوان مسیر اولیه را به دایرکتوری خاصی تنظیم کرد؟
بله، با استفاده از ویژگی InitialDirectory.
🏋️ تمرین کنترل OpenFileDialog برای تسلط بیشتر علاقه مندان
برنامهای طراحی کنید که فایلهای PDF را از کاربر دریافت کرده و مسیر کامل فایل انتخابشده را در یک Label نمایش دهد.
برنامهای بنویسید که به کاربر اجازه دهد چند تصویر انتخاب کند و پیشنمایش آنها را در یک PictureBox نمایش دهد.
برنامهای ایجاد کنید که فقط فایلهای با پسوند .docx را بپذیرد و پس از انتخاب، فایل را در Word باز کند (در صورت نصب بودن).
🧩 جمعبندی کنترل OpenFileDialog
کنترل OpenFileDialog یکی از ابزارهای کلیدی در برنامهنویسی WinForms است که کار انتخاب فایل را برای کاربران بسیار ساده میکند.
این کنترل قابلیتهایی نظیر فیلتر فایل، انتخاب چند فایل، تعیین مسیر اولیه و استفاده آسان را در اختیار برنامهنویسان قرار میدهد.
با درک درست از این ابزار، میتوان رابطهای کاربری کارآمدتر و بهتری طراحی کرد.
دوره های مرتبط

آموزش برنامه نویسی سی شارپ
زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.