منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ما هو كود جعل السطر المكرر هو نفسه السطر المحدد في الداتا جريد فيو
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

عند اضافة بيانات سطر يتم حفظ البيانات و التحديد يكون على آخر سطر  في الداتا جريد فيو



PHP كود :
كود :
dgvSale.CurrentCell = dgvSale.Rows(dgvSale.RowCount - 1).Cells(0)

        dgvSale.Rows(dgvSale.RowCount - 1).Selected = True

المطلوب :
أريد عند تكرار نفس بيانات سطر من الأسطر السابقة  يكون السطر المكرر هو السطر المحدد

شكرا اساتذتي الكرام

وجزاكم الله خيرا
PHP كود :
       For Each row As DataGridViewRow In DataGridView1.Rows
            If row
.Index DataGridView1.CurrentRow.Index Then
                DataGridView1
.Rows.Add(row.Cells(0).Valuerow.Cells(1).Valuerow.Cells(2).Valuerow.Cells(3).Valuerow.Cells(4).Valuerow.Cells(5).Value)
 
           End If
 
       Next 
(30-10-19, 04:16 PM)asemshahen5 كتب : [ -> ]
PHP كود :
       For Each row As DataGridViewRow In DataGridView1.Rows
            If row
.Index DataGridView1.CurrentRow.Index Then
                DataGridView1
.Rows.Add(row.Cells(0).Valuerow.Cells(1).Valuerow.Cells(2).Valuerow.Cells(3).Valuerow.Cells(4).Valuerow.Cells(5).Value)
 
           End If
 
       Next 

بارك الله فيك أخي لكن لم ينجح معي هل هناك خلل في طرحي للموضوع رابط الصورة :https://prnt.sc/pq57bx

لاحظ عند النقر على سطر داتا قريد فيو الاول تتضاعف الكمية لكن السطر الذي يحتويعلى الكود 11 لا يحدد يبقى السطر الاخير محدد
PHP كود :
       For Each row As DataGridViewRow In DataGridView2.Rows
            If row
.Cells(0).Value DataGridView1.CurrentRow.Cells(0).Value Then
                row
.Cells(3).Value += 1
                DataGridView2
.Refresh()
 
               DataGridView2.Rows(row.Index).Selected True
            End 
If
 
       Next 
أخي asemshahen5 بارك الله فيك
أنا مجرد متعلم جديد لكن اين هو الخلل

كود :
Dim total As Decimal
   Dim row As DataRow = dt.NewRow
   Private Sub dgv1_DoubleClick(sender As Object, e As EventArgs) Handles dgv1.DoubleClick
       Dim row As DataRow = dt.NewRow
       For i As Integer = 0 To dgvSale.Rows.Count - 1
           If dgv1.CurrentRow.Cells(0).Value = dgvSale.Rows(i).Cells(0).Value Then
               'MsgBox("الصنف موجود", MsgBoxStyle.Exclamation, "تنبيه")
               dgvSale.Rows(i).Cells(3).Value = dgvSale.Rows(i).Cells(3).Value + 1
               dgvSale.Rows(i).Cells(4).Value = (dgvSale.Rows(i).Cells(3).Value * dgvSale.Rows(i).Cells(2).Value)
               dgvSale.AllowUserToAddRows = False
               dgvSale.DataSource = dt
               total += dgvSale.Rows(i).Cells(4).Value
               txtTotal.Text = total
               txtBBO.Text = Val(txtDDO.Text) - Val(txtTotal.Text)
               txtClearSales()
               Exit Sub
           End If
       Next
       row(0) = Me.dgv1.CurrentRow.Cells(0).Value
       row(1) = Me.dgv1.CurrentRow.Cells(1).Value
       row(2) = Me.dgv1.CurrentRow.Cells(2).Value
       row(3) = 1
       row(4) = 1 * dgv1.CurrentRow.Cells(2).Value
       dt.Rows.Add(row)
       For i As Integer = 0 To dgvSale.Rows.Count - 1
           total += dgvSale.Rows(i).Cells(4).Value
       Next
       txtTotal.Text = total
       txtBBO.Text = Val(txtDDO.Text) - Val(txtTotal.Text)
       dgvSale.CurrentCell = dgvSale.Rows(dgvSale.RowCount - 1).Cells(0)
       dgvSale.Rows(dgvSale.RowCount - 1).Selected = True
PHP كود :
       Dim row As DataRow dt.NewRow
        For i 
As Integer 0 To dgvSale.Rows.Count 1
            If dgv1
.CurrentRow.Cells(0).Value dgvSale.Rows(i).Cells(0).Value Then
'                'MsgBox("الصنف موجود"MsgBoxStyle.Exclamation"تنبيه")
 
               dgvSale.Rows(i).Cells(3).Value += 1
                dgvSale
.Rows(i).Cells(4).Value Val(dgvSale.Rows(i).Cells(3).Value dgvSale.Rows(i).Cells(2).Value)
 
               dgvSale.AllowUserToAddRows False
'                'dgvSale.DataSource dt
                total 
+= dgvSale.Rows(i).Cells(4).Value
                txtTotal
.Text total
                txtBBO
.Text Val(txtDDO.Text) - Val(txtTotal.Text)
 
               txtClearSales()
 
               dgvSale.Rows(i).Selected True
                Exit Sub
            End 
If
 
       Next
        row
(0) = Me.dgv1.CurrentRow.Cells(0).Value
        row
(1) = Me.dgv1.CurrentRow.Cells(1).Value
        row
(2) = Me.dgv1.CurrentRow.Cells(2).Value
        row
(3) = 1
        row
(4) = dgv1.CurrentRow.Cells(2).Value
        dt
.Rows.Add(row)
 
       For i As Integer 0 To dgvSale.Rows.Count 1
            total 
+= dgvSale.Rows(i).Cells(4).Value
        Next
        txtTotal
.Text total
        txtBBO
.Text Val(txtDDO.Text) - Val(txtTotal.Text)
 
       dgvSale.CurrentCell dgvSale.Rows(dgvSale.RowCount 1).Cells(0)
 
       dgvSale.Rows(dgvSale.RowCount 1).Selected True 

عندي سؤال لماذا تستخدم : dgvSale.DataSource = dt في اللوب .

او ضع مثالا مصغرا في المرفقات
(30-10-19, 06:24 PM)asemshahen5 كتب : [ -> ]
PHP كود :
       Dim row As DataRow dt.NewRow
        For i 
As Integer 0 To dgvSale.Rows.Count 1
            If dgv1
.CurrentRow.Cells(0).Value dgvSale.Rows(i).Cells(0).Value Then
'                'MsgBox("الصنف موجود"MsgBoxStyle.Exclamation"تنبيه")
 
               dgvSale.Rows(i).Cells(3).Value += 1
                dgvSale
.Rows(i).Cells(4).Value Val(dgvSale.Rows(i).Cells(3).Value dgvSale.Rows(i).Cells(2).Value)
 
               dgvSale.AllowUserToAddRows False
'                'dgvSale.DataSource dt
                total 
+= dgvSale.Rows(i).Cells(4).Value
                txtTotal
.Text total
                txtBBO
.Text Val(txtDDO.Text) - Val(txtTotal.Text)
 
               txtClearSales()
 
               dgvSale.Rows(i).Selected True
                Exit Sub
            End 
If
 
       Next
        row
(0) = Me.dgv1.CurrentRow.Cells(0).Value
        row
(1) = Me.dgv1.CurrentRow.Cells(1).Value
        row
(2) = Me.dgv1.CurrentRow.Cells(2).Value
        row
(3) = 1
        row
(4) = dgv1.CurrentRow.Cells(2).Value
        dt
.Rows.Add(row)
 
       For i As Integer 0 To dgvSale.Rows.Count 1
            total 
+= dgvSale.Rows(i).Cells(4).Value
        Next
        txtTotal
.Text total
        txtBBO
.Text Val(txtDDO.Text) - Val(txtTotal.Text)
 
       dgvSale.CurrentCell dgvSale.Rows(dgvSale.RowCount 1).Cells(0)
 
       dgvSale.Rows(dgvSale.RowCount 1).Selected True 

عندي سؤال لماذا تستخدم : dgvSale.DataSource = dt في اللوب .

او ضع مثالا مصغرا في المرفقات
ضع قاعدة البيانات او الجداول المطلوبة .

تفضل هذا الكود المطلوب :

PHP كود :
   Private Sub dgv1_DoubleClick(sender As ObjectAs EventArgsHandles dgv1.DoubleClick
        Dim row 
As DataRow dt.NewRow
        For i 
As Integer 0 To dgvSale.Rows.Count 1
            If dgv1
.CurrentRow.Cells(0).Value dgvSale.Rows(i).Cells(0).Value Then
                dgvSale
.Rows(i).Cells(3).Value dgvSale.Rows(i).Cells(3).Value 1
                dgvSale
.Rows(i).Cells(4).Value = (dgvSale.Rows(i).Cells(3).Value dgvSale.Rows(i).Cells(2).Value)
 
               dgvSale.AllowUserToAddRows False
                dgvSale
.DataSource dt
                total 
+= dgvSale.Rows(i).Cells(4).Value
                txtTotal
.Text total
                txtBBO
.Text Val(txtDDO.Text) - Val(txtTotal.Text)
 
               txtClearSales()
 
               dgvSale.CurrentCell dgvSale.Rows(i).Cells(0)
 
               dgvSale.Refresh()
 
               dgvSale.Rows(i).Selected True
                Exit Sub
            End 
If
 
       Next
        row
(0) = Me.dgv1.CurrentRow.Cells(0).Value
        row
(1) = Me.dgv1.CurrentRow.Cells(1).Value
        row
(2) = Me.dgv1.CurrentRow.Cells(2).Value
        row
(3) = 1
        row
(4) = dgv1.CurrentRow.Cells(2).Value
        dt
.Rows.Add(row)
 
       For i As Integer 0 To dgvSale.Rows.Count 1
            total 
+= dgvSale.Rows(i).Cells(4).Value
        Next
        txtTotal
.Text total
        txtBBO
.Text Val(txtDDO.Text) - Val(txtTotal.Text)
 
       dgvSale.CurrentCell dgvSale.Rows(dgvSale.RowCount 1).Cells(0)
 
       dgvSale.Rows(dgvSale.RowCount 1).Selected True
    End Sub 
(30-10-19, 08:16 PM)asemshahen5 كتب : [ -> ]ضع قاعدة البيانات او الجداول المطلوبة .

تفضل هذا الكود المطلوب :

PHP كود :
   Private Sub dgv1_DoubleClick(sender As ObjectAs EventArgsHandles dgv1.DoubleClick
        Dim row 
As DataRow dt.NewRow
        For i 
As Integer 0 To dgvSale.Rows.Count 1
            If dgv1
.CurrentRow.Cells(0).Value dgvSale.Rows(i).Cells(0).Value Then
                dgvSale
.Rows(i).Cells(3).Value dgvSale.Rows(i).Cells(3).Value 1
                dgvSale
.Rows(i).Cells(4).Value = (dgvSale.Rows(i).Cells(3).Value dgvSale.Rows(i).Cells(2).Value)
 
               dgvSale.AllowUserToAddRows False
                dgvSale
.DataSource dt
                total 
+= dgvSale.Rows(i).Cells(4).Value
                txtTotal
.Text total
                txtBBO
.Text Val(txtDDO.Text) - Val(txtTotal.Text)
 
               txtClearSales()
 
               dgvSale.CurrentCell dgvSale.Rows(i).Cells(0)
 
               dgvSale.Refresh()
 
               dgvSale.Rows(i).Selected True
                Exit Sub
            End 
If
 
       Next
        row
(0) = Me.dgv1.CurrentRow.Cells(0).Value
        row
(1) = Me.dgv1.CurrentRow.Cells(1).Value
        row
(2) = Me.dgv1.CurrentRow.Cells(2).Value
        row
(3) = 1
        row
(4) = dgv1.CurrentRow.Cells(2).Value
        dt
.Rows.Add(row)
 
       For i As Integer 0 To dgvSale.Rows.Count 1
            total 
+= dgvSale.Rows(i).Cells(4).Value
        Next
        txtTotal
.Text total
        txtBBO
.Text Val(txtDDO.Text) - Val(txtTotal.Text)
 
       dgvSale.CurrentCell dgvSale.Rows(dgvSale.RowCount 1).Cells(0)
 
       dgvSale.Rows(dgvSale.RowCount 1).Selected True
    End Sub 

أخي بارك الله فيك يعمل بشكل جيد
مشكووووووووووووووووووور ما قصرت