PDA

View Full Version : سوال: وارد کردن عکس از آدرسی دیگر و کپی آن در محل برنامه و نمایش عکس در picturebox و listview



alinoori76
چهارشنبه 11 دی 1398, 19:41 عصر
با سلام و عرض خسته نباشید
اگه ممکنه راهنمایی کنید
ی listview داریم و یک picturebox با ی دکمه عکسی را انتخاب میکنیم و در محل نصب برنامه کپی میکنیم و مشخصات شخصی و آدرس جدید عکس را داخل listview میبینیم حالا میخواهیم با کلیک روی آیتم لیست ویو عکس از محل کپی شده نمایش داده بشه که با انتقال برنامه پوشه عکس هم منتقل شود.
ببخشید که سوالاتم خیلی مبتدیانه است.و خدا کنه منظورم رو درست رسونده باشم

the king
چهارشنبه 11 دی 1398, 20:32 عصر
با سلام و عرض خسته نباشید
اگه ممکنه راهنمایی کنید
ی listview داریم و یک picturebox با ی دکمه عکسی را انتخاب میکنیم و در محل نصب برنامه کپی میکنیم و مشخصات شخصی و آدرس جدید عکس را داخل listview میبینیم حالا میخواهیم با کلیک روی آیتم لیست ویو عکس از محل کپی شده نمایش داده بشه که با انتقال برنامه پوشه عکس هم منتقل شود.
ببخشید که سوالاتم خیلی مبتدیانه است.و خدا کنه منظورم رو درست رسونده باشم


using System.IO;

public partial class Form1 : Form
{
private string _photoDir;

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog(this) != DialogResult.OK)
{
return;
}
var destPath = Path.Combine(_photoDir, Path.GetFileName(openFileDialog1.FileName));
for (var i = 2; File.Exists(destPath); i++)
{
destPath = Path.Combine(_photoDir, Path.GetFileName(openFileDialog1.FileName) + $" ({i})");
}
try
{
File.Copy(openFileDialog1.FileName, destPath);
var item = new ListViewItem(Path.GetFileName(destPath));
item.Tag = destPath;
listView1.Items.Add(item);
listView1.SelectedItems.Clear();
item.Selected = true;
}
catch (Exception ex)
{
MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

private void Form1_Load(object sender, EventArgs e)
{
pictureBox1.BackgroundImageLayout = ImageLayout.Zoom;
_photoDir = Path.Combine(Environment.CurrentDirectory, "photo");
}

private void Form1_Shown(object sender, EventArgs e)
{
try
{
if (Directory.Exists(_photoDir) == false)
{
Directory.CreateDirectory(_photoDir);
}
var files = Directory.GetFiles(_photoDir);
var items = new ListViewItem[files.Length];
for (var i = 0; i < files.Length; i++)
{
items[i] = new ListViewItem(Path.GetFileName(files[i]));
items[i].Tag = files[i];
}
listView1.Items.AddRange(items);
}
catch (Exception ex)
{
MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
pictureBox1.BackgroundImage?.Dispose();
if (listView1.SelectedItems.Count == 0)
{
pictureBox1.BackgroundImage = null;
return;
}
try
{
pictureBox1.BackgroundImage = Image.FromFile((string)listView1.SelectedItems[0].Tag);
}
catch
{
}
}
}

alinoori76
پنج شنبه 12 دی 1398, 20:57 عصر
با سپاس فراوان خیلی خیلی لطف کردید . اگر کامنتهایی رو هم میگذاشتید که هر بخش چه کاری انجام میدهد بسیار عالی بود. بازهم تشکر