الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمود محوسب في ال Grid

مغلق
بدأه مقبل في 5 أبريل 2005 · 5 رد · 1,636 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الرجاء من الاخوة المساعدة

كيف لي أن يكون لي Grid مكون من 3 أعمدة وبمجرد أن يكتب في العمود الأول والثاني أرقام يكون في العمود الثالث حاصل ضرب العمود الأول مع العمود الثاني

سؤال آخر :

كيف لي أن أطبع في رسالة MessageBox قيمة خلية مثلا

علي سبيل المثال العمود الثاني الصف الثالث

الرجاء الاجابة بالتفصيل لأنني لأول مرة أتعامل مع مثل هذا الموضوع

شكرا لكم

السلام عليكم

خيركم من تعلم القرآن وعلمه

#2

الرجاء من الاخوة الذين يعرفون المساعدة

شكرا لكم مرة أخري

خيركم من تعلم القرآن وعلمه

#4

السلام عليكم

أخي الطيب لعمل ذلك قم بالتالي

أولاً قم بتعريف أربع متغيرات كالتالي

 Dim R%, C%
    Dim ColValue1, ColValue2 As Integer

المتغير R لمعرفة الـ Index اي موقع الصف Row في الـ DataGrid

و الـ C هو لمعرفة الـ Index اي موقع العامود Column في الـ DataGrid

أما المتغيرين الـ ColValue1 و ColValue2 لأخذ قيمة العامود الأول و العامود الثاني لتمكين عملية الضرب

ثم في حدث التحميل Form Load أكتب التالي

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler Ds1.Tables("tb").ColumnChanging, _
                         AddressOf tb_ColumnChanging

    End Sub

هذا الـ Delegate Event يراقب القيم في الـ DataGrid

ثم عرف هذا الـ Delegate وهو tb_ColumnChanging كالتالي

 Private Sub tb_ColumnChanging(ByVal sender As Object, _
    ByVal e As System.Data.DataColumnChangeEventArgs)
        Try
            If (e.Column.ColumnName.Equals("Percentage")) Then
                ColValue1 = CType(e.ProposedValue, Integer)
            End If
            If (e.Column.ColumnName.Equals("Salary")) Then
                ColValue2 = CType(e.ProposedValue, Integer)
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

تلاحظ إذا تم أسناد القيمة في العامود الأول سنحفظها في المتغير الأول ColValue1 = CType(e.ProposedValue, Integer)

الأن تبقت علينا الخطوة الأخيرة وهي عملية الضرب ستكون في حدث الـ CurrentCellChanged التابع لـ DataGrid

بهذا الشكل

  Private Sub DataGrid1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
        R = Me.DataGrid1.CurrentCell.RowNumber
        C = Me.DataGrid1.CurrentCell.ColumnNumber
        If Me.DataGrid1.CurrentCell.ColumnNumber = 2 Then
            Me.DataGrid1(R, C) = ColValue1 * ColValue2
        End If
    End Sub

ونقوم فيه بالطبع بإسناد رقم الصف في المتغير R و العامود في المتغير C

ثم نتحقق بالشرط هل نحن على العامود Total بهذا الشكل

 If Me.DataGrid1.CurrentCell.ColumnNumber = 2 Then

إذا كان كذلك نقوم بإسناد القيمة فيه بهذا الشكل

   Me.DataGrid1(R, C) = ColValue1 * ColValue2

ملاحظ تعريف المتغيرين R و C هما من نوع Integer كأنك تقول عند تعريفهم بهذا الشكل

  Dim R, C As Integer

والله أعلم

ColumnCalcuatedWithDG.zip

في المثال يتضح المقال

#5

الي الاخ ندى الصباح والي الاخ الغملاسي

شكرا جزيلا لكما

وبارك الله فيك

ولكن الي كل من الاخوين اذا ممكن أعرف البريد الخاص بكما

شكرا لكما معا

مقبل

خيركم من تعلم القرآن وعلمه

#6

يا أخواني

شكرا لكم علي ردودكم ولكن كل ما تم الرد عليه خاص ب ال DataGrid ولكنني أنا استخدم DataGridView فماذا أفعل

شكرا لكم

خيركم من تعلم القرآن وعلمه

هذا الموضوع مغلق.

مواضيع مشابهة