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

لماذا اصلا تريد تمرير متغير للفورم

انت عندك موديول ضع فيه كل متغيراتك وقم باستدعائها من اي فورم
الرد }}}
تم الشكر بواسطة: @@أبورائد@@ , 3booody , sooriaty03
#3
استخدم public property
الرد }}}
تم الشكر بواسطة: @@أبورائد@@ , 3booody , sooriaty03
#4
جزاك الله خير اخى سعود وجزاك الله خير اخى الشاكى لله
عملت فركتك اخى الشاكى لله عملت موديول عام وخليت كل المشاريع فى السيليوشن تتعرف عليه
جزاكم الله خير
الرد }}}
#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


السلام عليكم ورحمة الله وبركاته
الرد }}}
#6
جزاك الله خيرا اخى ابو رائد
حدرتك وضحت لى هذه الطريقة من قبل
وهى بالفعل ما كنت اعمل به
لاكن انا اريد تغير اصل المتغير
وفكرة اخى الشاكر لله كويسة
بحيث انى عامل فى السيليوشن 6 مشاريع
مش معقول كل شوية امرر المتغير ( هيزهق منى ) ههه
عملت مشروع جديد مكتبات كلاسات وعملت موديول عام وعملت المتغير فيه عام ايضا
كده كل المشاريع فى نفس السيليوشن تقدر تصل اليه وتغير قيمته
انتا عارف ايه هو المتغير ده اهم متغير فى حياتى
هو متغير يحمل بينات المستخدم مشفرة
ههه ربنا يبعد عننا الهكر ويجعل كلامنا خفيف عليهم
الرد }}}
تم الشكر بواسطة: sooriaty03 , @@أبورائد@@



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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم