السلام عليكم
لدي برنامج مبيعات ... اريد ان اضيف خيار فتح اكثر من فاتورة في نفس الوقت
يعني لو كان لدي form1 هو فورم الفاتورة ... انا اقوم بالسماح للمستخدم
بفتح اكثر من نسخة للفورم ١ فمن الممكن ان يفتح المستخدم نفس الفورم
٣ مرات مثلا ....
لكن عند فتح الفورم و في حدث load لل form1 اقوم بفتح فورم اخر XX يحتوي
على ٢ من ال buttons يختار منها المستخدم اذا الفاتورة الجديدة ستباع باسعار الجملة
ام باسعار التجزئة.
السؤال هنا كيف استطيع ارجاع القيمة من الفورم XX الى الفورم الذي تم فتحة في الاخر
دون التاثير على القيمة في الفورمات المفتوحه مسبقا .
انا استخدم الكود الحالي لكن يقوم بارسال القيم لجميع الفورمات المفتوحة ولليس اخر فورم.
الكود الخاص في الفورم XX لل button ١
PHP كود :
For Each CurrentForm As Form In Application.OpenForms
If CurrentForm.Name = "Sales_screen" Then
Dim Form2Instance As Sales_screen = DirectCast(CurrentForm, Sales_screen)
Form2Instance.Invoice_type = 0
End If
Next
(15-12-19, 04:24 AM)Rabeea Qbaha كتب : [ -> ]السلام عليكم
لدي برنامج مبيعات ... اريد ان اضيف خيار فتح اكثر من فاتورة في نفس الوقت
يعني لو كان لدي form1 هو فورم الفاتورة ... انا اقوم بالسماح للمستخدم
بفتح اكثر من نسخة للفورم ١ فمن الممكن ان يفتح المستخدم نفس الفورم
٣ مرات مثلا ....
لكن عند فتح الفورم و في حدث load لل form1 اقوم بفتح فورم اخر XX يحتوي
على ٢ من ال buttons يختار منها المستخدم اذا الفاتورة الجديدة ستباع باسعار الجملة
ام باسعار التجزئة.
السؤال هنا كيف استطيع ارجاع القيمة من الفورم XX الى الفورم الذي تم فتحة في الاخر
دون التاثير على القيمة في الفورمات المفتوحه مسبقا .
انا استخدم الكود الحالي لكن يقوم بارسال القيم لجميع الفورمات المفتوحة ولليس اخر فورم.
الكود الخاص في الفورم XX لل button ١
PHP كود :
For Each CurrentForm As Form In Application.OpenForms
If CurrentForm.Name = "Sales_screen" Then
Dim Form2Instance As Sales_screen = DirectCast(CurrentForm, Sales_screen)
Form2Instance.Invoice_type = 0
End If
Next
هذا الكود لفتح اكثر من فاتوره
كود :
Dim frm As New Sales_screen
frm.Show()
هذا كود فاتوره جديده سوف تفتح نافذه خيارات كما طلبت
كود :
Dim Invoice_type As Integer
Private Sub Sales_screen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Using xx As New XX
If xx.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
Invoice_type = xx.selection
Me.Text = Invoice_type
Else
Me.Close()
End If
End Using
End Sub
هذا كود نافذه الخيارات
كود :
Public selection As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
selection = 1
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
selection = 2
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub