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

نسخة كاملة : إغلاق الفورم مع حذف جميع البيانات الموجودة به
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته 
اقوم بعمل عمليات في فورم1 ثم انتقل للفورم2 واجراء عمليات وعند العودة للفورم1 أجد البيانات كما هي وكأنني لم أقم بإغلاقه فما هو الحل مع العلم أنني استخدمت الكود التالي ولم أتحصل على نتيجة 
  Form1.Close
 Form1.Dispose 
Form1 = Nothing



جزاكم الله كل خير
وعليكم السلام ورحمة الله وبركاته

حل هذه المسألة يعتمد على الإجراءات التي قمت بها بالضبط
هل هي عمليات تتعلق بقاعدة البيانات (إضافة ، حذف ، تعديل)
أم هي مجرد عمليات بسيطة ليس لها علاقة بقواعد البيانات .
وإذا كانت فعلا عمليات تتعلق بقاعدة البيانات ، فهل وضعت كود يقوم بإعادة تحميل البيانات عند تحميل Form1 ؟
أخيرا يمكنك أن ترفق البرنامج فيه الـ Form1 فقط ؛ حتى يمكن حل المشكلة بشكل صحيح .
وشكرا .
السلام عليكم ورحمة الله وبركاته 
متأسف جدا على التأخر في الرد لظرف صحي وشاكرا لك تفاعلك 
في الفورم 1 يوجد داتاقريدفيو يتم من خلالها تحميل تفاصيل المخالفة ومن ضمنها مستند Pdf  بعد التحميل يتم الانتقال للفورم 2 حيث أن مهمة الفورم2 هي عرض مستند Pdf من خلال picturebox ثم تجري عمليات التعديل على بيانات المخالفة وكذلك من الممكن استبدال ملف pdf   وبعد أن تتم عمليات التعديل يتم الخروج من خلال بوتون1 ولكن عند الخروج من بوتون1 والعودة للفورم1  

المفترض أنه بعد العودة للفورم1 وأحببت أن أتأكد هل تمت عمليات كما يجب فإنني أختار السجل الذي سبق وعدلته وعرض ملف pdf  في الفورم2  أجد البيانات يتم التعديل عليها ولكن المشكلة أن الملف pdf  المفترض يظهر بعد التعديل لايظهر وكأنه لايوجد ملف pdf  مخزن في قاعدة البيانات ولكي أظهره يجب اقفال البرنامج وتشغيله مرة أخرى 


اسف للشرح الطويل 
الكود المستخدم في الفورم1  

        Try

            Dim sqlq As String = "select * from Documents_Table where Mokhalafah_Number='" + TextBox22.Text + "'"
            Dim sqlcmd As New SqlCommand(sqlq, Sqlcon)
            Dim sqlAdapter = New SqlDataAdapter(sqlcmd)
            Dim dt As New DataTable

            Dim FS As FileStream = Nothing
            Dim dbbyte As Byte()
            dt = New DataTable()
            sqlAdapter.Fill(dt)
            Sqlcon.Close()


            If dt.Rows(0)(8).ToString = True Then
                If dt.Rows.Count > 0 Then

                    dbbyte = DirectCast(dt.Rows(0)("Mokhalafah_Pdf"), Byte())

                    My.Computer.FileSystem.CreateDirectory("C:\MohkPdfToImage")
                    Dim filepath As String = "C:\MohkPdfToImage\Mokhlafah.pdf"

                    FS = New FileStream(filepath, System.IO.FileMode.Create)


                    FS.Write(dbbyte, 0, dbbyte.Length)

                    FS.Close()


                    ' ''FS.Dispose()
                    Dim Proc As New Process()
                    Proc.StartInfo.FileName = filepath
                    Proc.Start()
                    Proc.Kill()


                    Sqlcon.Close()

                    MsgBox("    تم تحميل مستند المخالفة    ")

                    Dim f As New SautinSoft.PdfFocus
                    f.OpenPdf("C:\MohkPdfToImage\Mokhlafah.pdf")
                    f.ImageOptions.Dpi = 300
                    f.ToMultipageTiff("C:\MohkPdfToImage\Mokhlafah.tiff")
                    MsgBox("done")

                    Dim fpath As String = "C:\MohkPdfToImage\Mokhlafah.tiff"
                    Form2.PictureBox1.Image = Image.FromFile(fpath)


                End If
            Else
                MsgBox("لم يتم إدراج مستند للمخالفة")

            End If


        Catch ex As Exception

        End Try




        Form2.TextBox9.Text = Me.TextBox9.Text
        Form2.TextBox3.Text = Me.TextBox3.Text
        Form2.TextBox4.Text = Me.TextBox2.Text
        Form2.TextBox13.Text = Me.TextBox13.Text
        Form2.ComboBox2.Text = Me.TextBox12.Text
        Form2.TextBox5.Text = Me.TextBox22.Text
        Form2.NumericUpDown1.Value = CInt(Me.TextBox15.Text)
        If CheckBox3.Checked = True Then
            Form2.CheckBox3.Checked = True
        Else
            Form2.CheckBox3.Checked = False
        End If


        Form2.ShowDialog
أهلا وسهلا بك
الله يعطيك الصحة والعافية
كود :
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       ' يفضل أن تضع كود تحميل البيانات في هذا القسم
       ' حتى يتم تحميل البيانات بعد التحديث والتعديل
       ' وذلك كلما قمت بطلب إظهار هذا الفورم من جديد
   End Sub
السلام عليكم ورحمة الله وبركاته
الشكر الجزيل لك استاذ خالد وصلت الفكرة بارك الله فيك
السلام عليكم ورحمة الله وبركاته
مازالت المشكلة قائمة استاذ خالد
اعد تحميل تفاصيل المخالفه بعد السطر Form2.ShowDialog
شكرا لك أستاذ زهير على ردك 
للأسف أخي المشكلة مستمرة
السلام عليكم ورحمة الله وبركاته
أخي الفاضل
ما فهمته من طلبك انك تريد اعادة تحميل بيانات الفاتورة كاملة في FORM1 بعد التعديل
والتعديل بيتم فيFORM2
اذا عليك انت تعيد تشغيل الدالة المسؤلة عن تحميل البيانات
و استدعائها بوضع اسمها في بوتون1 في فورم 2 واعتقد ان فورم اثنين بيتم اغلاقه او اخفاء
المهم ان بعد وضعك لدالة تحميل البيانات في بوتون1
المفروض يتم تحديث البيانات في FORM1

الطريقة لاستدعاء الدالة او الاجراء
ولنفترض مثلا ان اسمها LOADDATA
اجعل نوعها PUBLIC وليست PRIVATE
ثم في نهاية الكود الخاص بك في بوتون1 في فورم 2 اكتب FORM1.LOADDATA()

اذا لم يعمل معك هذا الحل
فعليك بعمل مثال مشروع مصغر يحتوي على FORM1 , FORM2
ورفعه هنا لتحديد المشكلة ومساعدتك في الحل

تمنياتي لك بالتوفيق
السلام عليكم ورحمة الله وبركاته
ممكن اني ماشرحت المشكلة بشكل واضح 

لدي فورم1 وبه تعرض المخالفات من خلال داتاقريدفيو1 فعند الضغط على سجل معين تظهر بيانات في مربعات النص textbox  واذا اردت التعديل عليها يجب الانتقال الى فورم2 التي التي تحتوي على picturebox  يقوم بعرض ملف المخالفة على شكل صورة ثم أقوم بالتعديل عليها (  تعديل بيانات المخالفة أو اختيار صورة مخالفة أخرى  ) يتم التعديل بشكل طبيعي ولكن تظهر المشكلة عند اغلاق فورم2 والعودة للفورم1 وأردت التأكد من التعديل بحيث أعود للفورم2 حيث تظهر التعديل أجد ان التعديل لايظهر وكذلك picturebox  يعرض الملف القديم ولايمكن رؤية التعديلات الا بعد إغلاق البرنامج
أتمني أكون وضحت المشكلة
الصفحات : 1 2