تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] عاجل - تمرير متغير لفورم
#5
السلام عليكم ورحمة الله وبركاته


بعد إذن أخواني....

أنا شخصياً أستخدمها عند الحاجة، فمثلا نافذة بيانات موظف، أقوم بتمرير رقم id الخاص بالموظف في أمر استدعاء الفورم.

هذا طريقة الكود للفورم Form2 المخصص لبيانات الموظف وهو ثلاثة في واحد (تحديث و عرض و إضافة)
كود :
Public Class Form2

    Dim _id As Integer
    Dim _update As Boolean

    ' من أجل يكون الفورم صالح للتحديث والعرض فقط وإضافة بيانات جديد Optional جعلت المعاملات هنا اختياري
    Public Sub New(Optional ByVal id As Integer = 0, Optional ByVal update As Boolean = False)
        ' This call is required by the Windows Form Designer.
        InitializeComponent() ' لا تحذف هذا السطر ولا تضع شيئأ قبله
        ' Add any initialization after the InitializeComponent() call.

        _id = id
        _update = update

    End Sub

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If _id <> 0 Then
            ' عندما يوجد رقم أقوم بعرض بيانات الموظف
            ViewEmployeeProfile()

            If _update Then

                ' عندما المراد تحديث أغرض النص للأزارير لتتلائم مع المراد
                Me.Button1.Text = "تحديث"

            Else
                ' عندما المراد عرض البيانات فقط أقوم بتعطيل تحرير مربعات النص مثلا
                Me.Button1.Text = "إغلاق"

            End If

        Else

            ' وإذا كان صفراً أترك النموذج فارغا لتسجيل بيانات موظف جديد
            Me.Button1.Text = "إضافة"

        End If

    End Sub

    ' عرض البيانات البيانات
    Private Sub ViewEmployeeProfile()
        Dim sql As String = " SELECT * FROM[table1] WHERE [id] = " & _id
        '
        '
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If _id <> 0 Then
            If _update Then
                If UpdateEmployeeProfile() Then
                    Me.DialogResult = Windows.Forms.DialogResult.Yes
                End If
            Else
                If AddEmployeeProfile() Then
                    Me.DialogResult = Windows.Forms.DialogResult.Yes
                End If
            End If
        Else
            Me.DialogResult = Windows.Forms.DialogResult.OK
        End If
    End Sub

    ' تحديث البيانات
    Private Function UpdateEmployeeProfile() As Boolean
        Try
            Dim sql As String = " UPDATE [table1] SET [cname]=@cname, [bdate]=@bdate,.... WHERE [id] = " & _id
            '
            ''
            Return True

        Catch ex As Exception
            Return False
        End Try
    End Function

    ' إضافة البيانات البيانات
    Private Function AddEmployeeProfile() As Boolean
        Try
            Dim sql As String = " INSERT INTO [table1] ( [cname], [bdate],....) VALUES ( @cname, @bdate,....)  "
            '
            ''
            Return True

        Catch ex As Exception
            Return False
        End Try
    End Function

End Class

وهذه طريقة استدعائه من الـ Form1 بتمرير المعامل
كود :
Public Class Form1


    ' إضافة بيانات موظف جديد
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        ' لا بد من سطر التعريف أولا وهنا لم نسند معاملاً لأن الهدف إضافة جديد
        Dim frm As New Form2()
        If frm.ShowDialog(Me) = Windows.Forms.DialogResult.Yes Then
            ' ListView قم بتحديث
        End If

    End Sub

    ' عرض بيانات موظف فقط
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        ' نمرر رقم تعريف الموظف ListView مثلا لو كان لدينا

        ' لا بد من سطر التعريف أولا لإسناد رقم تعريف الموظف
        ' مع تجاهل المعامل الثاني لأن الافتراضي له هي عرض البيانات فقط
        Dim frm As New Form2(Val(Me.ListView1.SelectedItems(0).Text))
        frm.ShowDialog(Me)

    End Sub

    ' تحديث بيانات موظف موجود
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        ' وخترنا تحديث بيانات الموظف المحدد فيها ListView مثلا لو كان لدينا

        ' لا بد من سطر التعريف أولا لإسناد رقم تعريف الموظف
        ' مع تحديد المعامل الثاني وهي لتحديث بيانات وليس عرض البيانات فقط
        Dim frm As New Form2(Val(Me.ListView1.SelectedItems(0).Text), True)
        If frm.ShowDialog(Me) = Windows.Forms.DialogResult.Yes Then
            ' ListView قم بتحديث
        End If

    End Sub

End Class


السلام عليكم ورحمة الله وبركاته
الرد }}}


الردود في هذا الموضوع
عاجل - تمرير متغير لفورم - بواسطة ali.alfoly - 12-10-13, 08:47 PM
RE: عاجل - تمرير متغير لفورم - بواسطة سعود - 12-10-13, 08:59 PM
RE: عاجل - تمرير متغير لفورم - بواسطة @@أبورائد@@ - 12-10-13, 10:12 PM


التنقل السريع :


يقوم بقرائة الموضوع: