30/09/2018, 16:30
Tắt 1 form mà form được new trong form không bị tắt theo
Cho em hỏi là new em có 1 Form a, trong Form a em new thêm 1 form b.
khi em tắt Form a thì form b của em cũng bị tắt theo. vậy em phải làm sao để khi tắt Form a thì Form b vẫn không bị tắt.
làm tương tự với Form b cũng vậy. (trong Form b lại new 1 Form mới).
Em xin cảm ơn.
Bài liên quan
Hmm, đang tính google thì nghĩ lại. Về mặt thiết kế, Đạt nghĩ là @nhoxshockq8 không nên cho phép tắt form A trong khi form B vẫn còn chạy.
Em đang nghĩ là làm 1 chương trình sticky note y chang windows. mà trong windows lại có chức năng New 1 sticky note khác mà tắt cái sticky note đầu thì cái sticky note được New cũng không bị xoá.
Đó là lý do em đặt câu hỏi trên Group. (e thử lên mạng tìm mà không ra nên mới đặt câu hỏi @@)
Thử set parent cho form mới bằng NULL xem. (tức là parent của form mới là desktop)
cc: @tuancoi2506, @dangh
newForm.MdiParent = null;
em set nhưng nó vẫn không được @@
Có 1 điều em thấy lạ là khi Form b được new từ Form a (Form chính) thì các Form được New từ Form b khi xoá Form b thì các Form con của nó đều không bị xoá theo.
Anh Đạt giải thích giúp em với . @@
Trong hàm
Main
trong file .cs e sửa lại hàm Main như sau :Với
Form1
là form chính, trongForm 1
enew
1 form mới, sau đó thử đóng form 1 xem form mới có bị k nhé .e đã thử và kết quả là khi tắt Form b (ở trong code a ghi là Form form) thì form chính sẽ tắt theo.
với lại ý e không phải là ngay từ ban đầu có 2 cái Form liền. Mà ý em là làm giống với Sticky Note của windows 7 / 8 / 8.1 khi tạo thêm 1 cái Sticky Note mới thì khi tắt cái Sticky Note đầu tiên thì các Sticky Note được tạo bởi Sticky Note đầu tiên cũng không bị tắt theo đó a.
A chưa hiểu ý e lắm, vì ban đầu a có cảm giác ý e là form chính (form đầu tiên hiển thị sẽ là 1 cái Sticky Note đầu tiên), từ đó có thể click để tạo 1 sticky mới, thì e làm như cách a fai OK chứ, a đã làm thử rồi mà. Bây giờ ở dưới a lại thấy e viết giống như là sẽ có 1 form chính (form này k fai là 1 Sticky Note ), sau đó từ đó mới fat sinh ra các Sticky Note.
A upload code của a lên mediafire, theo ý 1 của e, trong đó có 2 form, đầu tiên form 1 hiện ra, e cllick vào button, form 2 sẽ hiện ra, e close form 1 thì form 2 sẽ k bị tắt.
MediaFire
DemoCloseForm.rar
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
Sao mà khi e nhấn Button xong rồi tắt Form 2 đi rồi lại nhấn Button thì nó hiện lỗi này vậy a Tuấn ?
E sửa lại file
Form1.cs
. Vì khi e đóngForm2
, thì nó sẽ bịdisposed
(Giải phóng tài nguyên, tạm hiểu là khi e close form thì nó sẽ hủy form đó). Nên sau đó e gọi phương thứcShow
của form đó nó sẽ bị lỗi như trên.Sao em mở Task Manager thì chương trình vẫn còn chạy dù đã tắt chương trình rồi vậy a Tuấn ?
E bắt sự kiện
Form_Closed
của form cuối cùng (khi tắt form này, tức là thoát ứng dụng) thì e thêm vào dòng code :Ví dụ :