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

نسخة كاملة : محتاج تعديل الكود لإضافتها فى موديل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 
محتاج اضيف الكود فى موديل واستخدمه فى اكتر من فورم 
مع تغير اسم الفورم والتكست بوكس  حسب الفورم 
كل شاشة فيها اسماء التكست بوكس مختلفة 
الكود هيتكرر معايا فى المشروع كله
كود :
 Try
           Select Case selectName

               Case "Vind"
                   frmVindors.txtRegionNameID.Text = dgv_Add.CurrentRow.Cells(0).Value
                   frmVindors.txtRegionName.Text = dgv_Add.CurrentRow.Cells(1).Value
                   Me.Close()

               Case "Cust"
                   frmCustomers.txtRegionNameID.Text = dgv_Add.CurrentRow.Cells(0).Value
                   frmCustomers.txtRegionName.Text = dgv_Add.CurrentRow.Cells(1).Value
                   Me.Close()
               Case "Shipping"
                   frmCustomers.txtRegionNameID.Text = dgv_Add.CurrentRow.Cells(0).Value
                   frmCustomers.txtRegionName.Text = dgv_Add.CurrentRow.Cells(1).Value
                   Me.Close()
               Case "Region"
                   frmCustomers.txtRegionNameID.Text = dgv_Add.CurrentRow.Cells(0).Value
                   frmCustomers.txtRegionName.Text = dgv_Add.CurrentRow.Cells(1).Value
                   Me.Close()
               Case Else

           End Select
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
       End Try
ضع هذه الدالة في الموديول
PHP كود :
Public Sub UpdateTextBoxes(ByVal formName As FormByVal textBoxID As StringByVal textBoxName As String)
 
   Select Case formName.Name
        Case 
"frmVindors"
 
           DirectCast(formNamefrmVindors).txtRegionNameID.Text textBoxID
            DirectCast
(formNamefrmVindors).txtRegionName.Text textBoxName
        Case 
"frmCustomers""frmShipping""frmRegion"
 
           DirectCast(formNamefrmCustomers).txtRegionNameID.Text textBoxID
            DirectCast
(formNamefrmCustomers).txtRegionName.Text textBoxName
        Case 
Else
 
           ' التعامل مع النماذج الأخرى إذا لزم الأمر
    End Select
    formName.Close()
End Sub 


وجرب الكود 
PHP كود :
Try
 
   UpdateTextBoxes(Medgv_Add.CurrentRow.Cells(0).Value.ToString(), dgv_Add.CurrentRow.Cells(1).Value.ToString())
Catch 
ex As Exception
    MessageBox
.Show(ex.Message"Error"MessageBoxButtons.OKMessageBoxIcon.Error)
End Try 
لتجنب تكرار الكود في المشروع ولجعل الكود أكثر مرونة، يمكنك إنشاء وظيفة عامة في نموذج مستقل تتعامل مع عملية التحديث بناءً على اسم النموذج واسماء الـTextBox الخاصة به. يمكنك بعد ذلك استدعاء هذه الوظيفة في النماذج المختلفة مع تمرير المعلمات المطلوبة.

إليك كيفية القيام بذلك:

إنشاء نموذج عام: يمكنك إنشاء نموذج عام يحتوي على الوظيفة التي تقوم بالتحديث بناءً على اسم النموذج واسماء الـTextBox.


PHP كود :
Public Module UpdateModule
    Public Sub UpdateTextBoxes
(formName As StringtextBoxID As TextBoxtextBoxName As TextBoxdgv As DataGridView)
 
       Try
            Dim idValue 
As String dgv.CurrentRow.Cells(0).Value.ToString()
 
           Dim nameValue As String dgv.CurrentRow.Cells(1).Value.ToString()

 
           textBoxID.Text idValue
            textBoxName
.Text nameValue
        Catch ex 
As Exception
            MessageBox
.Show(ex.Message"Error"MessageBoxButtons.OKMessageBoxIcon.Error)
 
       End Try
 
   End Sub
End Module 


استدعاء النموذج العام في النماذج المختلفة: يمكنك استدعاء الوظيفة العامة في النماذج المختلفة مع تمرير المعلمات المطلوبة (اسم النموذج واسماء الـTextBox وDataGridView).

PHP كود :
' في النموذج الأول
Private Sub UpdateVindors()
    UpdateModule.UpdateTextBoxes("Vind", txtRegionNameID, txtRegionName, dgv_Add)
    Me.Close()
End Sub

في النموذج الثاني
Private Sub UpdateCustomers()
 
   UpdateModule.UpdateTextBoxes("Cust"txtRegionNameIDtxtRegionNamedgv_Add)
 
   Me.Close()
End Sub

' وهكذا لباقي النماذج... 


استخدام Select Case في استدعاء الوظيفة: إذا كان لديك حالات متعددة كما هو موضح في الكود الأول، يمكنك استخدام Select Case في استدعاء الوظيفة العامة.

PHP كود :
Try
 
   Select Case selectName
        Case 
"Vind"
 
           UpdateModule.UpdateTextBoxes("Vind"frmVindors.txtRegionNameIDfrmVindors.txtRegionNamedgv_Add)
 
           Me.Close()
 
       Case "Cust"
 
           UpdateModule.UpdateTextBoxes("Cust"frmCustomers.txtRegionNameIDfrmCustomers.txtRegionNamedgv_Add)
 
           Me.Close()
 
       Case "Shipping"
 
           UpdateModule.UpdateTextBoxes("Shipping"frmCustomers.txtRegionNameIDfrmCustomers.txtRegionNamedgv_Add)
 
           Me.Close()
 
       Case "Region"
 
           UpdateModule.UpdateTextBoxes("Region"frmCustomers.txtRegionNameIDfrmCustomers.txtRegionNamedgv_Add)
 
           Me.Close()
 
       Case Else
 
           ' حالات أخرى إذا لزم الأمر
    End Select
Catch ex As Exception
    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try 


باستخدام هذه الطريقة، يمكنك إعادة استخدام الكود وتجنب التكرار. يمكنك أيضًا توسيع الوظيفة العامة لتشمل أي معالجات خاصة بالنماذج إذا لزم الأمر.
شكرا لك استاذي الفاضل
غزة العزة

جاري تجربة واستخدام الكود