PDA

View Full Version : آموزش: نمایش عکس با کلیک در سطر درون Datagridview در Picture Box



behrooz69
پنج شنبه 12 دی 1392, 15:23 عصر
سلام دوستان از ساعت 9 شب تا 6 صبح دنبال فهمیدن مشکل کارم بودم و بالاخره تونستم پیداش کنم .
هوررررررااااااااااااااااا ا !!! مشکل همه رو هم حل کردم .

حتما برنامه هایی رو دیدید که وقتی رو Data Grid View کلیک میکنید عکس تو دیتا پایین صفحه باز میشه یا متن سطر هاش داخل تککس باکس ها نشون میده یا تو فرم دیگه باز میشه وقتی دابل کلیک میکنیم . خو حالا من میگم چجوری :

من تو برنامم عکس هارو داخل دیتابیس Sql خودم Save کردم و اونو وصل کردم به DataGridView .

حالا با کلیک رو سطر مورد نظر هم اطلاعات متن هاش داخل تکس باکس هایی که مشخص کردم نشون داده میشن هم عکس تو PictureBox مورد نظر :بوس::تشویق::تشویق::تشویق::تش یق:


اول بیاین این تابع رو تعریف کنید :

Public Function GetDataToImage(ByVal pData As Byte()) As Image
Try
Dim imgConverter As New ImageConverter()
Return TryCast(imgConverter.ConvertFrom(pData), Image)
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
Return Nothing
End Try
End Function

بعد بیای تو رویداد CellClick مربوط به DataGridView خودتون این چند خط کد رو بنویسید :

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick

'// aval bayad image ma convert beshe az tarigh tabe GetDataToImage o bad neshon dade she

PicBoxInShowInfo.Image = GetDataToImage(CType(DataGridView1.CurrentRow.Cell s(7).Value, Byte()))

TextBox1.Text = DataGridView1.CurrentRow.Cells(0).Value.ToString.T rim
TextBox2.Text = DataGridView1.CurrentRow.Cells(1).Value.ToString.T rim

End Sub

توضیحشم اینه که وقتی عکسی تو دیتابیس ذخیره میشه آرایه ای از byte هاست و وقتی از روش
DataGridView1.CurrentRow.Cells(7).Value
استفاده میکنید با اررور اینکه این خط String هست و به BYte تبدیل نمیشه مواجه میشین وو واسه اینکار باید اول اونو توسط یه تابع بیاید به Byte تبدیل کنید و BYte به BYte تو PictureBox نشون بدید .

2 خط پایینم به صورت آزمایشیه و فقط 2 سلول رو تو تکس باکس ما نشون میده . آدرس سلول ها از 0 شروع میشه .


یا حق

elvishman
شنبه 10 مرداد 1394, 12:34 عصر
سلام
چطور میشه با کلیک بر روی همین سطر یک فایل ورد رو اجرا کرد ؟

MAHDAR
جمعه 13 آذر 1394, 18:41 عصر
فقط این تابع Function کجا باید بنویسیم !!!!