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

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



اضافة ايقونة لصفوف الداتاجريد فيو - محمد اسماعيل - 17-05-19

السلام عليكم

عندي داتاجريد فيو فية اسماء وعندي تيكست بوكس اريد عند وضع نفس قيمة التقيم الموجودة بخلية الداتاجريد  للعميل المحدد يتم اضافة ايقونة من الريسورس او imagelist

الي راس صفوف الداتاجريد وتتغير الايقونة برمجيا عند تغيير القيمة

[attachment=21519]


RE: اضافة ايقونة لصفوف الداتاجريد فيو - sami4 - 17-05-19

(17-05-19, 08:07 AM)محمد اسماعيل كتب : السلام عليكم

عندي داتاجريد فيو فية اسماء وعندي تيكست بوكس اريد عند وضع نفس قيمة التقيم الموجودة بخلية الداتاجريد  للعميل المحدد يتم اضافة ايقونة من الريسورس او imagelist

الي راس صفوف الداتاجريد وتتغير الايقونة برمجيا عند تغيير القيمة


هذا الكود لرسم الايقونه في راس الصف كما في الصوره اذا كانت صوره الايقونه في الريسورس
Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
    If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
        e.Graphics.DrawImage(My.Resources.img1, r)
    End If
End Sub

هذا الكود لرسم الايقونه في راس الصف كما في الصوره اذا كانت صوره الايقونه في imagelist
Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
    If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
        e.Graphics.DrawImage(Me.ImageList1.Images("img1"), r)
    End If
End Sub

وهذا الحدث لتحديث الايقونات اذا تغيرت قيمه خليه
Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
    DataGridView1.Invalidate()
End Sub

وهذا كدث تغير قيمه التيكست بوكس
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    DataGridView1.Invalidate()
End Sub


RE: اضافة ايقونة لصفوف الداتاجريد فيو - محمد اسماعيل - 17-05-19

(17-05-19, 09:07 PM)sami4 كتب :
(17-05-19, 08:07 AM)محمد اسماعيل كتب : السلام عليكم

عندي داتاجريد فيو فية اسماء وعندي تيكست بوكس اريد عند وضع نفس قيمة التقيم الموجودة بخلية الداتاجريد  للعميل المحدد يتم اضافة ايقونة من الريسورس او imagelist

الي راس صفوف الداتاجريد وتتغير الايقونة برمجيا عند تغيير القيمة


هذا الكود لرسم الايقونه في راس الصف كما في الصوره اذا كانت صوره الايقونه في الريسورس
Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
    If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
        e.Graphics.DrawImage(My.Resources.img1, r)
    End If
End Sub

هذا الكود لرسم الايقونه في راس الصف كما في الصوره اذا كانت صوره الايقونه في imagelist
Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
    If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
        e.Graphics.DrawImage(Me.ImageList1.Images("img1"), r)
    End If
End Sub

وهذا الحدث لتحديث الايقونات اذا تغيرت قيمه خليه
Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
    DataGridView1.Invalidate()
End Sub

وهذا كدث تغير قيمه التيكست بوكس
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    DataGridView1.Invalidate()
End Sub

جربت الكود لا يعمل علي داتاجريد عند وضعية right to left=true
يقوم بوضع الايقونة اخر خلية وليس علي هيدر الصف


RE: اضافة ايقونة لصفوف الداتاجريد فيو - sami4 - 17-05-19

(17-05-19, 09:50 PM)محمد اسماعيل كتب :
(17-05-19, 09:07 PM)sami4 كتب :
(17-05-19, 08:07 AM)محمد اسماعيل كتب : السلام عليكم

عندي داتاجريد فيو فية اسماء وعندي تيكست بوكس اريد عند وضع نفس قيمة التقيم الموجودة بخلية الداتاجريد  للعميل المحدد يتم اضافة ايقونة من الريسورس او imagelist

الي راس صفوف الداتاجريد وتتغير الايقونة برمجيا عند تغيير القيمة


هذا الكود لرسم الايقونه في راس الصف كما في الصوره اذا كانت صوره الايقونه في الريسورس
Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
    If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
        e.Graphics.DrawImage(My.Resources.img1, r)
    End If
End Sub

هذا الكود لرسم الايقونه في راس الصف كما في الصوره اذا كانت صوره الايقونه في imagelist
Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
    If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
        e.Graphics.DrawImage(Me.ImageList1.Images("img1"), r)
    End If
End Sub

وهذا الحدث لتحديث الايقونات اذا تغيرت قيمه خليه
Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
    DataGridView1.Invalidate()
End Sub

وهذا كدث تغير قيمه التيكست بوكس
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    DataGridView1.Invalidate()
End Sub

جربت الكود لا يعمل علي داتاجريد عند وضعية right to left=true
يقوم بوضع الايقونة اخر خلية وليس علي هيدر الصف


حسنا اضف الكود التالي بعد سطر Dim r مباشره
If sender.RightToLeft = RightToLeft.Yes Then r.X = sender.Width - sender.RowHeadersWidth + 3


RE: اضافة ايقونة لصفوف الداتاجريد فيو - asemshahen5 - 17-05-19

جرب هذا المثال أرجو أن يفي بالغرض :


RE: اضافة ايقونة لصفوف الداتاجريد فيو - محمد اسماعيل - 17-05-19

(17-05-19, 10:18 PM)asemshahen5 كتب : جرب هذا المثال أرجو أن يفي بالغرض :

كود فوق الممتاز ويفي بالغرض تماما

(17-05-19, 09:57 PM)sami4 كتب :
(17-05-19, 09:50 PM)محمد اسماعيل كتب :
(17-05-19, 09:07 PM)sami4 كتب :
(17-05-19, 08:07 AM)محمد اسماعيل كتب : السلام عليكم

عندي داتاجريد فيو فية اسماء وعندي تيكست بوكس اريد عند وضع نفس قيمة التقيم الموجودة بخلية الداتاجريد  للعميل المحدد يتم اضافة ايقونة من الريسورس او imagelist

الي راس صفوف الداتاجريد وتتغير الايقونة برمجيا عند تغيير القيمة


هذا الكود لرسم الايقونه في راس الصف كما في الصوره اذا كانت صوره الايقونه في الريسورس
Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
    If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
        e.Graphics.DrawImage(My.Resources.img1, r)
    End If
End Sub

هذا الكود لرسم الايقونه في راس الصف كما في الصوره اذا كانت صوره الايقونه في imagelist
Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    Dim r = New Rectangle(e.RowBounds.X + sender.RowHeadersWidth - 16 - 3, e.RowBounds.Y + 3, 16, 16)
    If Val(sender.Rows(e.RowIndex).Cells(2).Value) = Val(TextBox1.Text) Then
        e.Graphics.DrawImage(Me.ImageList1.Images("img1"), r)
    End If
End Sub

وهذا الحدث لتحديث الايقونات اذا تغيرت قيمه خليه
Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
    DataGridView1.Invalidate()
End Sub

وهذا كدث تغير قيمه التيكست بوكس
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    DataGridView1.Invalidate()
End Sub

جربت الكود لا يعمل علي داتاجريد عند وضعية right to left=true
يقوم بوضع الايقونة اخر خلية وليس علي هيدر الصف


حسنا اضف الكود التالي بعد سطر Dim r مباشره
If sender.RightToLeft = RightToLeft.Yes Then r.X = sender.Width - sender.RowHeadersWidth + 3

جزاك اللَّة خيرا علي ما قدمت