سلام .... امیدوارم آموزش زیر مفید باشه . آموزش های زیر رو گام به گام ادامه بده مشکلت حل میشه .
1- ابتدا باید به مسیر اجرایی پروژه رفت (bin > debug ) و سپس باید دایرکتوری برای ذخیره ی عکس تشکیل داد .
به طور مثال دایرکتوری با نام : Picture ،در پوشه ی debuge داریم .
2- سپس یک Button و picturebox به فرم اضافه می کنیم . برای هر کدام به صورت زیر خاصیت نامی مینویسیم .
در اینجا : Button >browser ، picutrebox > pic
3- بر روی دکمه ی browser ، کلیک کرده و کدهای زیر را می نویسیم .
private void browser_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "(*.*)|*.*";
ofd.Title = "تصویرانتخاب شود ";
if (ofd.ShowDialog() == DialogResult.OK)
{
pic.load(ofd.FileName);
}
}
catch
{
MessageBox.Show("فایل انتخابی غیر قابل دسترس است ");
}
}
توضیح کد بالا :
در خط 6 : به کار بر اجازه داده می شود که هر فایلی رو با هر پسوندی انتخاب کند . در این خط کد :(*.*) ، برای نمایش تمامی فایل ها در Browser و *.* ، برای ذخیره سازی فایل با پسوند مورد نظر .
در غیر این صورت اگر می خواهید تنها فایل هایی با پسوند خاص دریافت شود، مانند نمونه کد را وارد کنید .
ofd.Filter="(*.jpg)|*.jpg";
از شرط if ، برای کنترل رویداد استفاده کردیم . در کد بالا گفته شده که اگر کاربر برروی ok کلیک کرد ، کد های موجود در بلاک داده if را اجرا کن .
توجه : همان طور که در کد بالا مشاهده می کنید ما از دستور try و catch استفاده کرده ایم . چرا ؟
به این دلیل که اگر کاربر فایلی به غیر از عکس انتخاب کرد ، برنامه با error مواجه نشه . به عبارتی دیگر از این دستور برای کنترل خطا استفاده می شود .
4 - یک Button دیگر به برنامه اضافه می کنیم . خاصیت Name آن را برابر با Save قرار می دهیم . بر روی آن دوبار کلیک کنید و کد زیر را وارد نمایید . ( عملیات ذخیره سازی )
private void BtnSave_Click(object sender, EventArgs e)
{
pictureBox1.Image.Save(Application.StartupPath + "\\Picture\\ " + tbl.ID.Tostring() + ".jpg");
}
توضیح کد بالا :
همان طور که مشاهده می کنید ، Application.StartupPath ، به مسیر اجرایی پروژه اشاره دارد . و \\Picture\\ به دایرکتوری که در فایل Debug ایجاد کرده ایم اشاده دارد .
tbl.ID.Tostring ، از این کد برای ذخیره سازی همراه با شناسه مورد نظر بکار می رود . که این دلبخواهی است .
".jpg" ،سرانجام فایل با این پسوند ذخیره میشود . می توان این پسوند را نیز تغییر داد .
برای بارگذاری اطلاعات در فرم دوم ( به عبارتی وقتی بر روی هر سطر از ستون دیتاگرید کلیک شد اطلاعات مورد نظر در فرم بعدی نشان داده شود ) :
1-خوب حالا در فرم جاری یک دکمه ی دیگر به برنامه اضافه می کنیم و خاصیت Name آن را برابر با btnShow قرار می دهیم.
2- در این مرحله من فرم جدیدی به برنامه اضافه می کنیم و خاصیت Name آن را برابر با form_show قرار می دهیم . در این فرم به دلخواه lable و picturebox درج میکنیم تا اطلاعات رو به طور دلخواه در آن ثبت کنیم . توجه داشته باشید که باید خاصیت Modifiers آن ها را برابر با public قرار دهیم تا به آن ها دسترسی عمومی داشته باشیم .
3 - بر روی دکمه ی btnSave (که در فرم قبلی ایجاد کرده ایم ) دوبار کلیک می کنیم و مانند نمونه کد های زیر را وارد می نماییم:
private void btnSave_Click(object sender, EventArgs e)
{
frmshow frmshow = new frmshow();
frmshow.label1.Text=dataGridView1.CurrentRow.Cells["ID"].Value.ToString();
frmshow.label2.Text=dataGridView1.CurrentRow.Cells["Name"].Value.ToString();
frmshow.pictureBox1.Load(Application.StartupPath + "\\picure\\" + dataGridView1.CurrentRow.Cells["ID"].Value.ToString() + ".jpg");
}
توضیح کد بالا:
خط 4 و 5 نیز شناسه و نام کاربر را نشان می دهد .
در خط7 ، همان طور که مشاهد می کنید . این کد زمانی اجرا می شود که کاربر از دیتاگرید ID مورد نظر خود را انتخاب کند و عکس کاربر در picbox نمایش داده می شود .
امروز اشتراک اینترنتم تمام میشه. اگر سوالی در این باره به وجود اومد میتونی از مدیریت یا سایر دوستان بخوای که کمکت کنن .