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

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



مساعدة في datatGridviwe - DOX.1 - 08-10-18

عندي قريد فيها عمود عباره عن زر + بيانات السجل 
لما يضغط على الزر يعرض بياناته في شاشه أخرى

المشكله أن عندما يضغط الزر عرض البيانات ياخذ من 4-5 ثواني والمعالج الله يصلحه يضغط ورى بعض كثير لحد ما يعلق البرنامج ولا فيه حل إلى أن يتقفل البرنامج كامل 
كيف أتجاوز هذه المشكله


RE: مساعدة في datatGridviwe - asemshahen5 - 09-10-18

ضع مثال ليتم التعديل عليه أو ضع الكود لمعرفة مكان الخطأ فيه


RE: مساعدة في datatGridviwe - ay.alhaj - 09-10-18

ضع الكود المستخدم


RE: مساعدة في datatGridviwe - DOX.1 - 09-10-18

كود :
Dim sRow As DataGridViewRow = DGV.Rows(e.RowIndex)
         

 If e.ColumnIndex = Me.DGV.Columns(0).Index Then

" تنفيذ أمر برمجي
end if

كود :
Dim sRow As DataGridViewRow = DGV.Rows(e.RowIndex)
         

 If e.ColumnIndex = Me.DGV.Columns(0).Index Then

" تنفيذ أمر برمجي
end if



RE: مساعدة في datatGridviwe - asemshahen5 - 09-10-18

جرب هذا : e.ColumnIndex = 2 .
2 هو رقم عامود الموجود فيه الزر .

كود القيمة المراد عرضها بالمسج بوكس Dim valueXT As String = DataGridView1.Rows(e.RowIndex).Cells(0).Value

كود :
   Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    If e.ColumnIndex = 2 Then
        Dim valueXT As String = DataGridView1.Rows(e.RowIndex).Cells(0).Value
        If valueXT = Nothing Then Exit Sub
        MsgBox(valueXT.ToString)
    Else
        Exit Sub
    End If
End Sub



RE: مساعدة في datatGridviwe - حريف برمجة - 10-10-18

برائي انته لا تحتاج إلى if

كل اللي تحتاجه عند النقر على الصف ياخذ قيمة Id

ثم يفتح الشاشة الأخرى وبموجب Id تعرض السجلات .

ولجلب قيمة Id :

لنفرض انه في العمود الأول :

في حدث cellmouceclick


كود :
Private Sub DataGridView1_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseClick

ضع هذا الكود :

كود :
id = DataGridView1.Item(0, e.RowIndex).Value
Form2.Show


ثم في فورم2 في حدث Load


كود :
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

تكتب استعلام بموجب id (يجب عليك تعريف متغير عام في موديول على مستوى المشروع كامل) هكذا Public id As Integer