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

عندما اغلق نموذج الباسووورد يغلق النموذج التالي

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

السلام عليكم

اخواني عملت برنامج وجعلت ال startup form نموذج طلب الباسوورد وفيه زر موافق واغلاق

ووضعت استدعاء للنموذج التالي في حالة كان الباسوورد صحيح كالتالي

dim x as new form2

x.show

close

وذلك حتى يتم اغلاق نموذج الباسوورد وفتح النموذج الثاني

المشكلة انه حين يتم اغلاق نموذج الباسوورد يتم اغلاق النموذج الثاني معه

جربت وحذفت امر close من زر موافق ووضعته في زر اغلاق

صار يفتح النموذج الثاني في حالة صحة الباسوورد لكن يبقى النموذجين مفتوحين وحين اضغط زر اغلاق في نموذج الباسوورد يغلق النموذجين معا

هل من حل

#2

استخدم Hide بدلا من Close لان Close في الForm الاساسية ستغلق البرنامج كله

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#3

جزاك الله خير

يا بشمهوندس

#4

عذرا على التدخل ولكن عند استخدام hide سوف يبقى الفورم في لذاكرة ولن يغلق عند وقف البرنامج باستخدام close فما الحل

#5

اذا كنت لن تحتاج الform الاولى بعد ذلك ابدا و الuser سوف ينهي استخدام البرنامج من الform الثانية يمكنك اضافة الكود التالي للevent Close في الform الثانية

Application.Exit()

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#6
اقتباس
ولكن عند استخدام hide سوف يبقى الفورم في لذاكرة ولن يغلق عند وقف البرنامج باستخدام close فما الحل

الحل هو أن تجعل مشروعك يعتمد على عنصر ثالث غير الفورم الرئيسية و فورم الباسوورد..

بمعنى ان الأخ "ماهمه شي" (اسم غريب :D ) بدلاً من أن يعين فورم الباسوورد كـ Startup Form (و هذه طريقة خاطئة تماماً) يعين هذا العنصر الثالث كـ Startup ، الـ Sub Main .

مثال:

أضف Module لمشروعك و سمه MainStartUp ، ثم أكتب بداخل الـ Sub Main اجراءات فتح فورم الباسوورد، ثم التأكد من صحة الباسوورد من خلال الضغط على الـ Button المخصص لذلك الموجود على فورم الباسوورد، و من ثم غلقها و فتح الفورم الرئيسية، أنظر الكود:

كود الـ Button :

    Public Const passText As String = "arabteam"
    Private Sub btnEnter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnter.Click

        If txtPassword.Text <> passText Then
            MessageBox.Show("Wrong Password!, please try again.", "Wrong Password!", MessageBoxButtons.OK, MessageBoxIcon.Error)
            txtPassword.Focus()
            txtPassword.SelectAll()
            Return
        Else
            MainStartup.rightPassword = True
            Me.Close()
            Me.Dispose()
        End If

    End Sub

كود الـ Module :

Module MainStartup

    Public rightPassword As Boolean

    Public Sub Main()

        Dim Password As New frmPassword()
        Password.ShowDialog()

        If rightPassword = True Then

            Dim mainForm As New frmMain()
            mainForm.Text = "Welcome back " & Password.passText


            Application.Run(mainForm)

        End If

    End Sub

End Module

بهذه الطريقة لن نزحم الذاكرة بوجود فورم لا نحتاجها الا مرة واحدة في بداية التطبيق فقط...

إذا لم تستخدم Module لتضع به الـ Sub Main الخاصة بالمشروع، فعليك أن تضيف كلمة Shared عندما تعرف الـ Sub Main :

Public Shared Sub Main()
           'Code
End Sub

و يمكنك طبعاً أن تضع هذه الـ Sub Main في أي مكان بالمشروع سواءً في الفورم الرئيسية أو أي Class

المثال بالأعلى مرفق..

PasswordExample.zip

تم تعديل هذه المشاركة بواسطة محمد عبد العليم في 23 مايو 2005 في 21:34

رأس الحكمة الإيمان بالله

#7

المشرف الكبير محمد عبدالعليم

طريقتط كالعادة نجحت 200%

جزاك الله خيرا على مشاركتنا علمك وأفاد الله بك جميع المسلمين

خارج الموضوع :

(ماهمه شي) اسم قديم لي في المنتديات والسبب ان الانترنت جعلتنا مجهولين مما اعطانا حرية التعبير خصوصا في السياسة ونكتب بدون ان يهمنا اي شئ والكل يدلو بدلوه بدون خوف من المحاسبة والمسائلة الا من الله سبحانه وتعالى

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…