PDA

View Full Version : آموزش: ایجاد panel scroll برای نمایش عکس های یک پوشه



ghasem110deh
دوشنبه 29 دی 1393, 21:57 عصر
ساخت یک پنل با قابلیت اسکرول جهت نمایش تصاویر یک پوشه ...
یک پنل به فرم اضافه کرده و خاصیت AutoScroll آن را true کنید !
و ایجاد فضای نام IO ...

و حالا :


private void LoadImageScroller(Panel p)
{
label1.Text = "یک پوشه عکس انتخاب کنید .....";
//متغیر های مورد نیاز
int position = 0;
int count = 0;
string[] validExtensions = new string[] { ".jpg", ".bmp", ".gif", ".png" };
//تعیین پوشه حاوی عکس
DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environmen t.SpecialFolder.MyPictures));

//ایجاد حلقه جهت نمایش همه عکسها
foreach (FileInfo f in info.GetFiles())
{
for (int i = 0; i < validExtensions.Length; i++)
{
//تایید پسوند فایل (عکس) و ایجاد یک pictureBox جدید برای هر عکس
if (f.Extension.ToString().ToLower() == validExtensions[i].ToLower())
{
PictureBox pb = new PictureBox();
pb.Name = "ImagePB" + count;
pb.Cursor = Cursors.Hand;
//تعیین پنل بعنوان جایگاه نمایش عکس ها و اندازه عکسها و فاصله از لبه پنل و دیگر عکسها
pb.Parent = p;
pb.Size = new Size(130, 98);
pb.SizeMode = PictureBoxSizeMode.StretchImage;
pb.Location = new Point(position + 10, 20);
//ایجاد تصویر برای هر pictureBox
pb.Image = Image.FromFile(f.FullName);
pb.Image.Tag = f.FullName;
//تعریف رویداد های مورد نیاز ... مختصات نمایش عکس و شمارنده تعداد عکسها
pb.MouseHover += new EventHandler(pb_MouseHover);
pb.MouseLeave += new EventHandler(pb_MouseLeave);
pb.Click += new EventHandler(pb_Click);
position += 135;
count += 1;
}
}
}
//نمایش اطلاعات عکس در لیبل
label1.Text = string.Format("{0} image(s) available in directory {1}", count, Environment.GetFolderPath(Environment.SpecialFolde r.MyPictures));
}
//تغییر کادر عکسها با آمدن و رفتن ماوس و نمایش نام عکس در مسیج باکس با کلیک روی عکس
void pb_MouseHover(object sender, EventArgs e)
{
((PictureBox)sender).BorderStyle = BorderStyle.Fixed3D;
}
void pb_MouseLeave(object sender, EventArgs e)
{
((PictureBox)sender).BorderStyle = BorderStyle.None;
}
void pb_Click(object sender, EventArgs e)
{
MessageBox.Show(string.Format("Selected Image: {0}", ((PictureBox)sender).Image.Tag.ToString()));

}


و در رویداد Load_Form :

LoadImageScroller(panel1);

حسین.کاظمی
سه شنبه 30 دی 1393, 08:23 صبح
تشکر بابت این آموزش ولی ای کاش میشد یک نمونه هم بزارید
موفق باشید

ghasem110deh
سه شنبه 30 دی 1393, 15:14 عصر
تشکر بابت این آموزش ولی ای کاش میشد یک نمونه هم بزارید
موفق باشید

سلام
ضمیمه شد ... (فقط باید آدرس پوشه تصاویر رو تغغیر بدین)