PDA

View Full Version : سوال: دابل کلیک روی سطر دیتاگرید ویو و باز شدن اطلاعات سطر در یه فرم دیگر



behrooz69
سه شنبه 10 دی 1392, 21:49 عصر
سلام اساتید محترم . دیدم همه دارن سوالاتی میپرسن که همه چیزشون الکیه . خو منم گفتم الارقم آموزش یه چیزی هم یاد بگیرن.

حتما همه ما نرم افزار های حسابداری رو دیدیم که یه گرید ویو دارن و توی سطرشون یه سری اطلاعات دارن مثلا اطلاعات محصول یا اسامی افراد یا انبار داری یا هر چیزی .

مثلا نرم افزار محک :
توی گرید ویویی که داره وقتی روی سطر دابل کلیک میکنی تو یه صفحه دیگه اطلاعات اون سطر رو به ما نشون میده و کیتونیم ویرایش یا حذف یا کارای دیگه انجام بدیم.

یا وقتی روی سطر توی گرید ویو راست کلیک میکنیم گزینه های : ویرایش ، بروز رسانی ، حذف و ... رو به ما میده که خیلی جالبه .

لطفا کسی باشه که بیاد کار با گرید ویو رو تو یه پروژه کامل آموزش بده .

یا حق

hosseinbarnamenevis
سه شنبه 10 دی 1392, 22:31 عصر
خب این سوا خیلی کلیه و روش های مختلفی وجود داره
به نظر من نرم افزار محک زمانی که رویه یه سطر از دیتا گرید ویو دابل کلیک میکنید ولین کاری که میکنه اینه که اطلاعات رو تماما داخل یه پنجره دیگه نمایش میده و بعد اطلاعات قبلی رو پاک میکنه و در زمان تایید پنجره جدید مجدادا ذخیره میشه که این روش حذف کنترل شدست که من خودم هم ازین روش استفاده میکنم که مزایا و معایب زیادی داره مثلا این که همونطور که گفتم کنترل شدست و باید واسه همه حالات برنامه ای داشت

behrooz69
چهارشنبه 11 دی 1392, 00:49 صبح
خب این سوا خیلی کلیه و روش های مختلفی وجود داره
به نظر من نرم افزار محک زمانی که رویه یه سطر از دیتا گرید ویو دابل کلیک میکنید ولین کاری که میکنه اینه که اطلاعات رو تماما داخل یه پنجره دیگه نمایش میده و بعد اطلاعات قبلی رو پاک میکنه و در زمان تایید پنجره جدید مجدادا ذخیره میشه که این روش حذف کنترل شدست که من خودم هم ازین روش استفاده میکنم که مزایا و معایب زیادی داره مثلا این که همونطور که گفتم کنترل شدست و باید واسه همه حالات برنامه ای داشت

داداشی ممنون از جوابت . حرفت متین . ولی باید کلیاتش گفته شه که ما استفاده کنیم.

نیاز نیست همه رو بگی مثلا با این شروع کن :

مثلا من تو دیتابیس خودم عکس رو هم ثبت کردم و تو گرید ویو خودم اومدم عکس رو نشون دادم. و میخوام وقتی رو سطر مورد نظر کلیک شد عکس ای که تو دیتاگرید ویو ما نشون داده شده به صورت PopUp نشون داده بشه حالا چه تو Picture Box چه توی چیز دیگه.

نسرین2000
چهارشنبه 11 دی 1392, 09:30 صبح
اگه کسی بتونه آموزش بده خیلی خوبه چون من هم همچین مشکلی دارم .

behrooz69
پنج شنبه 12 دی 1392, 15:40 عصر
فرمایید بالاخره خودم فهمیدم :

سلام دوستان از ساعت 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 شروع میشه .


یا حق

janvali
پنج شنبه 22 آبان 1393, 10:39 صبح
سلام
من تابعی که اینجا گفته شده رو
Public Function GetDataToImage(ByVal pData As Byte()) As Image
نوشتم ولی از این خط ایراد میگیره چرا اصلا نمیزاره تابع رو تعریف کنم

janvali
پنج شنبه 22 آبان 1393, 11:07 صبح
بیا کسی جواب نمیده بعد که خودت میای تاپیک میزاری میگن پست تکراری گذاشتی چرا سرچ نکردی
اصلا چرا این کده
End Sub
داره من کد سی شارپ میخوام همین مثال رو میخوام که با دابل کلیک بر روی دیتاگرید فرم دوم باز بشه و عکس تو فرم دوم نمایش داده بشه

behrooz69
پنج شنبه 29 آبان 1393, 14:42 عصر
بیا کسی جواب نمیده بعد که خودت میای تاپیک میزاری میگن پست تکراری گذاشتی چرا سرچ نکردی
اصلا چرا این کده
End Sub
داره من کد سی شارپ میخوام همین مثال رو میخوام که با دابل کلیک بر روی دیتاگرید فرم دوم باز بشه و عکس تو فرم دوم نمایش داده بشه


داداش دعوا داری ؟؟

برنامه vb to c# convert رو دانلود کن کد هارو توش کپی کن و تبدیل کن.

شما ببینید توی کدوم بخشید ( vb.net) ولی بخش سی شارپ جداست

niknam_mh
پنج شنبه 29 آبان 1393, 18:24 عصر
دوستان سلام
با اجازتون من چند نکته درباره گریدویو بگم تو خیلی جاها کمک می کنه البته شاید پیش پا افتاده باشه ولی از این تاپیک اینطور درک کردم که اگه بگم خوبه.

1- اگه بخوایم اطلاعات یک ردیف از گریدویو رو بخونیم و حالا داخل تکس باکس یا صفحه بعد نشون بدیم به روش زیر عمل می کنیم:
اگر dgv گریدویو کا باشه و meghdar نام سلولمون باشه و s نام متغیرنون باشه

s=dgv.currentrow.cells("meghdar").value

2 - اگه بخوایم اطلاعات گریدویو با شماره خاصی رو بخونیم مثلاً اگه اون رو درون یه حلقه for قرار دادیم به روش زیر عمل می کنیم:

s=dgv.rows(i).cells("meghdar").value

چطوره ادامه بدیم یا نه؟