منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
اضافة صور فى subitem - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : اضافة صور فى subitem (/showthread.php?tid=18842)



اضافة صور فى subitem - Mohamed20 - 17-01-17

وجدت وضوع يتكلم هن هذا http://vb4arb.com/vb/thread-16450.html لاكن يوجد مشكلة واحدة فقط انه لايمكن اضافة اكثر من صوره عند اضافة صوره اخرى يتم تغير جميع الصور هل من حل

كود :
   Private Sub ListView1_DrawSubItem(sender As Object, e As DrawListViewSubItemEventArgs) Handles ListView1.DrawSubItem
       For Each itm As ListViewItem In ListView1.Items
           If e.SubItem.Text = itm.SubItems(1).Text Then
               Dim imageRect = New Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height)
               e.Graphics.DrawString(e.SubItem.Text, e.SubItem.Font, New SolidBrush(e.SubItem.ForeColor), (e.SubItem.Bounds.Location.X + 15), e.SubItem.Bounds.Location.Y + 3)
               e.Graphics.DrawImage(Image.FromFile(Application.StartupPath + "\Data\" + TextBox2.Text + ".png"), imageRect)
           Else
               e.DrawDefault = True
           End If
       Next
   End Sub

   Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       ListView1.OwnerDraw = True
   End Sub

   Private Sub ListView1_DrawColumnHeader(sender As Object, e As DrawListViewColumnHeaderEventArgs) Handles ListView1.DrawColumnHeader
       e.DrawDefault = True
   End Sub



RE: اضافة صور فى subitem - مساعدة - 17-01-17

السلام عليكم

جرب التعديل، تم الغاء كتابة النص في العمود المحدد واستغلال النص على أنه اسم الصورة من المجلد Data
كود :
  Private Sub ListView1_DrawSubItem(sender As Object, e As DrawListViewSubItemEventArgs) Handles ListView1.DrawSubItem
          If e.ColumnIndex = 1 Then
              Dim imageRect = New Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Height, e.Bounds.Height)
              'e.Graphics.DrawString(e.SubItem.Text, e.SubItem.Font, New SolidBrush(e.SubItem.ForeColor), (e.SubItem.Bounds.Location.X + 15), e.SubItem.Bounds.Location.Y + 3)
               Dim imgFilename As String = Application.StartupPath + "\Data\" + e.SubItem.Text
               Dim img As Image = New PictureBox().ErrorImage
               If IO.File.Exists(imgFilename) Then img = Image.FromFile(imgFilename)
               e.Graphics.DrawImage(img, imageRect)
          Else
              e.DrawDefault = True
          End If
  End Sub

  Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      ListView1.OwnerDraw = True
  End Sub

  Private Sub ListView1_DrawColumnHeader(sender As Object, e As DrawListViewColumnHeaderEventArgs) Handles ListView1.DrawColumnHeader
      e.DrawDefault = True
  End Sub


تم تعديل الكود بعد مراجعته مرة أخرى


RE: اضافة صور فى subitem - مساعدة - 18-01-17

تم عديل الكود

عند إضافة بيانات احرص على دقة اسم الصورة مع نوعها في العمود الثاني (تبدأ رقام الأعمدة برقم صفر) مثل هذا الكود
كود :
ListView1.Items.Add(New ListViewItem({"موظف", "emp.png"}))

التعديل الذي أجريته يعمل على إظهار صورة X إذا اتضح عدم وجود الصورة أو خطأ في اسم الصورة أو مسارها


RE: اضافة صور فى subitem - مساعدة - 20-01-17

تم عديل الكود


RE: اضافة صور فى subitem - Mohamed20 - 20-01-17

(20-01-17, 02:32 AM)مساعدة كتب : تم عديل الكود

المشكلة فى Application.StartupPath + "\Data\" + e.SubItem.Text يجب ان يكون هذا هو المسار لكى يعمل اذا كان Application.StartupPath + "\Data\" + textbox.Text يتم ازالة الصورة عند اضافة item اخرى


RE: اضافة صور فى subitem - مساعدة - 20-01-17

عندي لا توجد المشكلة التي ذكرتها.

فضع مشروعك لمعرفة المشكلة لديك وإيجاد الحل المناسب.


RE: اضافة صور فى subitem - Mohamed20 - 21-01-17

(20-01-17, 10:59 PM)مساعدة كتب : عندي لا توجد المشكلة التي ذكرتها.

فضع مشروعك لمعرفة المشكلة لديك وإيجاد الحل المناسب.

شكرآ كان يوجد مشكلة فى الكود و تم حلها بحمد الله