Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Trao đổi dữ liệu giữa nhiều form cho cả 2 chiều đi và về trong C# ?

  1. #1
    Ngày gia nhập
    04 2012
    Bài viết
    506

    Mặc định Trao đổi dữ liệu giữa nhiều form cho cả 2 chiều đi và về trong C# ?

    Có thể truyền dữ liệu 2 form từ form1 vào form2 và đi chiều ngược lại sử dụng Delegate nhưng có bạn nào đã làm ví dụ: dữ liệu truyền là mẫu tin có kiểu DataTable
    các trường hợp sau:
    1. truyền từ form1 lên form2 (tại form2 được chỉnh sửa có thể bổ sung thêm trường mới) và đi chiều ngược lại Ok
    2. truyền từ form1 lên form2 và chuyển đi tiếp lên form3, tại form3 được chỉnh sửa đi về lại form2 đến đây OK
    3. truyền từ form1 lên form2 và chuyển đi tiếp lên form3, tại form3 được chỉnh sửa đi về lại form2, đến đây từ form2 đi về form1 nhưng không truyền được, debug mình thấy nó cứ truyền lên form3, mình cũng khai báo cú pháp như trường hợp số 1 ở trên, tại sao C# không thấy form1, chú ý khi truyền từ form có số nhỏ đến form có số lớn đó được mở ra theo tứ tự cho đến khi từ form có số lớn truyền về form có số nhỏ hơn, thì form có số lớn đó (liền kề form số nhỏ) được đóng lại. có bạn nào biết lỗi này ?

  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    5

    Mình không hiểu ý câu hỏi của bạn lắm, bạn nói rõ hơn đi mình có thể giúp bạn nè.....

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Recycle Bin
    Bài viết
    358

    Ví dụ: giả sử Form1 chứa dữ liệu là một Datatable.
    Visual C# Code:
    1. class Form1
    2. {
    3.     public static Datatable data;
    4.     ...
    5.     public static Datatable getData()
    6.     {
    7.         return data;
    8.     }
    9.     ...
    10. }
    Form2 sử dụng data của Form1, và đây là Form2
    Visual C# Code:
    1. class Form2
    2. {
    3.     ...
    4.     void test()
    5.     {
    6.         Form1 f1 = new Form1();
    7.         Datatable temp = f1.getData();
    8.         ...
    9.     }
    10.     ...
    11. }
    Thường thì người ta sẽ tách data ra thành 1 lớp riêng, và khi sử dụng thì gọi lớp này.
    YH : lobuocphuudu_218
    Phone : 0126 463 5095

    http://forums.congdongcviet.com/signaturepics/sigpic55872_2.gif

  4. #4
    Ngày gia nhập
    04 2012
    Bài viết
    506

    cách của bạn là truyền dữ liệu qua 2 form thông qua khai báo biến có kiểu static, bạn không sử dụng delegate, cách này mình sử dụng rồi, cách truyền qua 2 form thì đơn giản, nếu bạn truyền qua nhiều form sẽ khác nhiều, bạn có thể làm cho mình 1 ví dụ nho nhỏ bạn sẽ thấy, trường hợp của mình là truyền đến 3 form, truyền đến đau mở form đến đó và khi truyền ngược về thì form mở cuối cùng sẽ đóng trước theo tuần tự đi ngược về, bạn có thể đọc 3 trường hợp mình nêu trên, mình đang vướn ở trường hợp thứ 3:

    1. theo trường hợp số 3 ở trên: nếu form3 mở ra, từ form3 chuyển dữ liệu xuống form2 và đóng form3 bằng lệnh this.close(); theo mình hiểu thì form3 không tồn tại sao máy vẫn biết form3, khi truyền số liệu từ form2 đến form3 (thay vì phải truyền từ form2 xuống form1 mới đúng, của trường hợp số 3), trường hợp này mình có lệnh gì mà đóng form3 này không cho máy thấy form3 đã tồn tại trong bộ nhớ thì mình nghĩ khi truyền sẽ truyền vào form1

    2. theo truờng hợp số 3: mình debug và làm cách này trước khi truyền dữ liệu từ form2 xuống form1 mình cho active form1 trước khi truyền lúc này sẽ gọi đúng form1, nhưng form1 này lại mở thêm 1 cái form1 nữa vì trước đó form 1 đã mở, giờ muốn truyền vào form 1 cũ không mỡ thêm form1 mới, cú pháp ntn ?

    tóm lại mình đang tìm theo 2 hướng (hướng số 1 là tìm cách giết form3 không cho máy tính thấy form3, hướng số 2 làm sao gán số liệu cho form1 đang mở)

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