Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Hỏi về mối quan hệ giữa hai form

  1. #1
    Ngày gia nhập
    10 2006
    Nơi ở
    Bốn biển là nhà
    Bài viết
    36

    Mặc định Hỏi về mối quan hệ giữa hai form

    chào các bác!
    các bác cho em hỏi chút, Em có 2 form là frm1 và frm2 . trong frm1 em gọi frm2 (show frm2)!
    vậy làm sao để biết được là frm2 đã đóng(Close) hay chưa?
    ở frm1 liệu có thể bắt được sự kiện frm2 đóng không ? nếu bác nào biết thì xin chỉ dùm em với.
    thankS!
    ... Từ [0] và [1] họ đã tạo ra nhiều thứ cho những thằng ngu ngồi cãi nhau...

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    14

    muốn biết được frm có đóng hay chưa thì bạn phải kiểm tra được activate hay không?
    Nếu đóng rồi thì bạn mở frm đó lên lại còn chưa đóng thì bạn chỉ cần activate nó lên thôi
    Đây là phương thức mình dùng để kiểm tra tồn tại của 1 frm nè.
    Code:
             private Form KiemTraTonTai(Type formType)
            {
                foreach (Form f in this.MdiParent.MdiChildren )
                {
                    if (f.GetType() == formType)
                        return f;
                }
                return null;
            }
    ví dụ bạn có 1 button để gọi frm2 thì bạn coding cho nút đó như sau
    Code:
    private void button1_Click(object sender, EventArgs e)
            {
                   Form frm = KiemTraTonTai(typeof(frm2));
                    if (frm != null)
                        frm.Activate();
                    else
                    {
                        frm2 f = new frm2();
                        f.MdiParent = this.MdiParent;
                        f.Show();
                    }
              }
    Hai đoạn code này bạn viết ở frm1 hết là ok

  3. #3
    Ngày gia nhập
    10 2006
    Nơi ở
    Bốn biển là nhà
    Bài viết
    36

    hic........!
    Code:
    Form f in this.MdiParent.MdiChildren
    nó báo lỗi
    Object reference not set to an instance of an object.
    bác xem lại dùm em cái. khi dùng bác có using thêm gói nào của .net nữa không?
    ... Từ [0] và [1] họ đã tạo ra nhiều thứ cho những thằng ngu ngồi cãi nhau...

  4. #4
    Ngày gia nhập
    11 2007
    Bài viết
    294

    @phthinh : Bạn có dùng mdiform không?
    Nếu không dùng mdi thì không dùng được đoạn code kia đâu ^^!

    Cheers!
    Is the moon rising...

  5. #5
    Ngày gia nhập
    03 2008
    Bài viết
    43

    Mình cũng viết như vậy và nói cũng báo lổi ở dòng
    Form f in this.MdiParent.MdiChildren nói thông báo lổi: Object reference not set to an instance of an object.
    Mình đã tạo ra form cha và form con rồi.(từ form cha gọi form con)

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    Bốn biển là nhà
    Bài viết
    36

    Mặc định Hỏi về mối quan hệ giữa hai form

    Trích dẫn Nguyên bản được gửi bởi darkan Xem bài viết
    @phthinh : Bạn có dùng mdiform không?
    Nếu không dùng mdi thì không dùng được đoạn code kia đâu ^^!

    Cheers!
    mình chỉ add hai cái from: Form1 và Form2 theo cách thông thường vào cái project của mình thôi!
    lúc mình test thử lại đoạn code trên thì thấy nghi nghi , đến khi debug thì đúng là lỗi thật.
    với trường hợp mình add hai Form như cách của mình thì có cách nào để ở Form1 mà nhận biết được là Form2 đã đóng hay chưa không vậy bạn?
    ... Từ [0] và [1] họ đã tạo ra nhiều thứ cho những thằng ngu ngồi cãi nhau...

  7. #7
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Cái này dùng delegate đi ( cách này Zk thích nó )

    còn về dùng delegate mình có một demo đưa lên 4rum rồi, bạn search đi nhé

    Mà mình thắc mắc là không biết khi một form đã close rồi thì nó làm gì có Handle nữa mà làm việc được nhỉ , với lại nhu cầu của bạn làm gì. (vì một người đã chết ko thể làm được gì cho mình hay ai khác, trừ khi được "tái sinh" )

    Cheers! ( Mới Chôm được của anh Dark )

  8. #8
    Ngày gia nhập
    10 2006
    Nơi ở
    Bốn biển là nhà
    Bài viết
    36

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    với lại nhu cầu của bạn làm gì. (vì một người đã chết ko thể làm được gì cho mình hay ai khác, trừ khi được "tái sinh" )

    Cheers! ( Mới Chôm được của anh Dark )
    ah ! mình muốn biết khi nào thì nó chết để.........làm hậu sự cho nó ấy mà
    đùa bạn chơi thôi! mình muốn thực thi một phương thức khác ngay khi Form2 nó đã đóng hoàn toàn nên mới muốn tìm cách để biết là khi nào thì Form2 nó đóng
    ... Từ [0] và [1] họ đã tạo ra nhiều thứ cho những thằng ngu ngồi cãi nhau...

  9. #9
    Ngày gia nhập
    11 2008
    Bài viết
    2

    @phthinh: ở form cha bạn phải set properties IsMdiComtainer = true
    Khi form con đã close thì đổi tượng frm2 (form con) vẫn còn, nó chỉ bị dispose chứ không bị xóa khỏi bộ nhớ. Bạn có thể check xem form con đã bị đóng hay chưa bằng câu lệnh:
    Code:
    if(frm2.IsDisposed)
        {
              // frm2 đã close, cần khởi tạo lại frm2 = new Form2();
        }
    Chúc thành công !

  10. #10
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Trích dẫn Nguyên bản được gửi bởi phthinh Xem bài viết
    ah ! mình muốn biết khi nào thì nó chết để.........làm hậu sự cho nó ấy mà
    đùa bạn chơi thôi! mình muốn thực thi một phương thức khác ngay khi Form2 nó đã đóng hoàn toàn nên mới muốn tìm cách để biết là khi nào thì Form2 nó đóng
    đối với trường hợp cần "làm sạch dữ liệu" của form2 thì bạn làm như sau. (Làm ngay trên form2)
    Visual C# Code:
    1. private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    2. {
    3.       MessageBox.Show(" lo hậu sự thôi..... chít rùi  ");
    4. }
    5.         private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    6.         {
    7.             MessageBox.Show("ngáp...ngáp ... sắp die ");
    8.         }

Các đề tài tương tự

  1. ADO.NET Tạo tính trực quan cho form, dùng nút Tab để đổi khung control
    Gửi bởi LucyFire trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 25-10-2012, 03:14 PM
  2. Algorithm Gọi delegate từ 2 form con ko liên quan đến nhau ?
    Gửi bởi bibi_1234 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 16-05-2012, 12:59 AM
  3. Chương trình 3 lớp Quan hệ nhiều bảng trong Form Hóa Đơn
    Gửi bởi xuandung892010 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 26-03-2011, 05:29 PM
  4. quan hệ giữa 2 form và tabcontrol
    Gửi bởi pxminh trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 19-11-2010, 03:17 PM
  5. Vấn đề liên quan đến việc bật tắt form
    Gửi bởi TCH trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 20-05-2008, 05:18 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn