PDA

View Full Version : سوال در مورد OpenFileDialog



CSharpLovers
جمعه 13 آبان 1401, 18:19 عصر
با سلام .
میخوام به وسیله یک دکمه فایل های مختلف رو در برنامه نمایش بدم . مثلا تصویر و پی دی اف
به این صورت که وقتی دکمه زده میشه توسط شرطی در OpenFileDialog پسوند فایل تشخیص داده بشه .
اگر pdf بود فایل برای نمایش ارسال بشه به axAcroPDF و اگر تصویر بود با فرمتهای مختلف مثل png,jpeg,bmp و ... فایل برای نمایش ارسال بشه به picture box
کد OpenFileDialog رو میگذارم که البته این کد کار نمیکنه فکر میکنم باید چیزی شبیه به این باشه .
با تشکر

OpenFileDialog op = new OpenFileDialog();


op.Filter = "PDF file| *.PDF|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|All Files(*.*)|*.*";


if (op.ShowDialog() == DialogResult.OK && op.FileName == "*.jpeg")
{
pictureBox.Load(op.FileName);
}

if (op.ShowDialog() == DialogResult.OK && op.FileName == "*.pdf")
{
axAcroPDF1.src = (op.FileName);
}

ROSTAM2
جمعه 13 آبان 1401, 18:45 عصر
سلام.
بعد از ok شدن دایالاگ از دستور switch کمک بگیر: C#‎‎‎ Switch (w3schools.com) (https://www.w3schools.com/cs/cs_switch.php)

برای بدست آوردن Extension فایل هم : Path.GetExtension Method (System.IO) | Microsoft Learn (https://learn.microsoft.com/en-us/dotnet/api/system.io.path.getextension?view=net-7.0)

CSharpLovers
جمعه 13 آبان 1401, 18:53 عصر
ممنون دوست عزیز .
با کد زیر مشکل حل شد. از کد else if هم میشه استفاده کرد . به نظرتون if بهتره اینجا یا switch ?

switch (extension)
{
case ".pdf":
axAcroPDF1.src = (op.FileName);
break;
case ".jpg":
pictureBox_ShowImage.Load(op.FileName);
break;


}

ROSTAM2
جمعه 13 آبان 1401, 19:56 عصر
در صورتی که بخواهید شروط متعددی داشته باشید دستور switch پرکاربردتر از If با بلاک های متعدده. گر چه برای دو Case می تونیذ از دستور if هم استفاده کنید.