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

Đề tài: Liên kết các đối tượng có cùng các sự kiện như nhau

  1. #1
    Ngày gia nhập
    10 2010
    Bài viết
    7

    Mặc định Liên kết các đối tượng có cùng các sự kiện như nhau

    Chào mọi người
    Hiện tại mình đang tạo một form mà trên đó có nhiều textbox ( khoảng 90 textbox) trong đó chuyên biệt có 30 textbox có cùng một sự kiện kiểm tra nào đó (keypress chẳng hạn). Mình mới tập tành về lập trình về WindowsForm trên C# nên chưa tìm thấy cách để liên kết các đối tượng textbox ( hoặc các đối tượng khác) thành một nhóm để tiện truy xuất hay xử lý. Mà xử lý kiểu 30 textbox 30 sự kiện be bé thì rất là lâu và nhìn code không được đẹp cho lắm.
    Bạn nào rành về C# và WindowForm xin được chỉ dẫn.
    Chân thành cảm ơn, trà đá cà phê nếu ở Hà Nội nhé.

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

    muốn tạo nhiều control bạn có thể vòng lặp
    Visual C# Code:
    1. for( ..... )
    2. {
    3.      // khoi tao control
    4.      TextBox a = new TextBox;
    5.      // xet vị tri
    6.      a.Location = ......;
    7.      // xét sự kiện
    8.      a.KeyDown += .......(KeyDown_Chung);
    9. }
    10.  
    11. void KeyDown_Chung(object, class tao event)
    12. {
    13.    TextBox tb = (TextBox)object;
    14.    // xu ly textbox được sử dụng key down
    15.    if(e.KeyData == Keys.Enter)
    16.    {
    17.     }
    18.  
    19. }

    m` demo trên dạng code thô thôi, còn lại thì nó ở trong bài có hết

  3. #3
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi toi_xau Xem bài viết
    muốn tạo nhiều control bạn có thể vòng lặp
    Visual C# Code:
    1. for( ..... )
    2. {
    3.      // khoi tao control
    4.      TextBox a = new TextBox;
    5.      // xet vị tri
    6.      a.Location = ......;
    7.      // xét sự kiện
    8.      a.KeyDown += .......(KeyDown_Chung);
    9. }
    10.  
    11. void KeyDown_Chung(object, class tao event)
    12. {
    13.    TextBox tb = (TextBox)object;
    14.    // xu ly textbox được sử dụng key down
    15.    if(e.KeyData == Keys.Enter)
    16.    {
    17.     }
    18.  
    19. }

    m` demo trên dạng code thô thôi, còn lại thì nó ở trong bài có hết
    Làm như bạn thì vấn đề gán nhiều sự kiện ok. Nhưng còn về vị trí của các Textbox thì sao? Lại dùng code để set location?Nếu mà các textbox được đặt dạng bảng tuần tự gì đó thì có thể tìm quy luật->ngon. Nhưng mà nếu ở nhiều vị trí khác nhau(hay ko kề nhau)=>mệt đấy! như thế sợ rằng còn rối hơn là code sự kiện cho từng textbox+kéo thả.

    Theo mình thì dùng theo cách duyệt các control of Form chứa 90 txt bằng Foreach=>sau đó dựa vào dấu hiệu của 30 txt=>gán event cho nó. Như thế chắc là ổn hơn.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  4. #4
    Ngày gia nhập
    10 2010
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi mrfour.it Xem bài viết
    Làm như bạn thì vấn đề gán nhiều sự kiện ok. Nhưng còn về vị trí của các Textbox thì sao? Lại dùng code để set location?Nếu mà các textbox được đặt dạng bảng tuần tự gì đó thì có thể tìm quy luật->ngon. Nhưng mà nếu ở nhiều vị trí khác nhau(hay ko kề nhau)=>mệt đấy! như thế sợ rằng còn rối hơn là code sự kiện cho từng textbox+kéo thả.

    Theo mình thì dùng theo cách duyệt các control of Form chứa 90 txt bằng Foreach=>sau đó dựa vào dấu hiệu của 30 txt=>gán event cho nó. Như thế chắc là ổn hơn.
    Hiện các textbox của mình đang đặt gần nhau nên việc sinh textbox cũng không khó khăn lắm.
    Mình đã thấy có một bạn dùng thuộc tính tag và foreach để quản lý các control có cùng thuộc tính và sự kiện. Nhưng chưa hiểu rõ lắm.
    Mrfour có thể nói rõ hơn được không? Mình mới làm quen với C# nên chưa được rành lắm
    Cảm ơn bạn toi_xau đã cho gợi ý

  5. #5
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Trong C# có vài thứ rất mạnh để xử lý việc này mà Kevin nghĩ rằng các bạn nên tìm hiểu:

    Ví dụ:
    1. System.ComponentModel.Component Class
    2. System.ComponentModel.IExtenderProvider
    3. ... (Không nhớ chính xác, sẽ cập nhật sau)

    Ngoài ra, sử dụng tính chất kế thừa của OOP để xử lý vấn đề trên cũng là một trong các cách rất phổ biến.

    Hãy tìm và nghiên cứu, đừng xin code nhé!
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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

  1. Cùng nhau đón tết ^^
    Gửi bởi hoang201222 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-01-2013, 02:27 PM
  2. Lập trình C Sửa lỗi : Kiểm tra SNT cùng nhau
    Gửi bởi thao260694 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 30-11-2012, 11:06 PM
  3. Tại sao khi cùng 1 kiểu dữ liệu nhưng lại có số bit khác nhau
    Gửi bởi learntofly1 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 23-10-2012, 07:33 PM
  4. Trả lời: 1
    Bài viết cuối: 11-05-2012, 11:44 AM
  5. [VC++]Cùng nhau làm một cuốn tử điển chơi!
    Gửi bởi athaygiao trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 16
    Bài viết cuối: 28-06-2007, 01:21 AM

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