PDA

View Full Version : Số điều khiển trong UserControl có bị hạn chế ko



anhkiet1993
22-04-2008, 09:09
Theo tôi biết thì số control trong biểu mẫu nhiều nhất là 245 control, vậy UserControl có bị hạn chế như Form Kô.
Với lại 1 control có thuộc tính Visible = False hoặc điều khiển bị điều khiển khác đè lên (Bị che khuất) hoặc nằm ngoài phạm vi của Form(hoặc Picture Box) có bị tính là một điều khiển kô

huytranaz
22-04-2008, 15:15
Theo tôi biết thì số control trong biểu mẫu nhiều nhất là 245 control, vậy UserControl có bị hạn chế như Form Kô.
Với lại 1 control có thuộc tính Visible = False hoặc điều khiển bị điều khiển khác đè lên (Bị che khuất) hoặc nằm ngoài phạm vi của Form(hoặc Picture Box) có bị tính là một điều khiển kô

Từ VB5 trở về trước mới bị hạn chế số điều khiển trên form là 256 và tất nhiên trong các OCX control cũng bị hạn chế như vậy. Control có visible hoặc invisible cũng vậy thôi.

Nhưng từ VB6 thì sự hạn chế này đã được khắc phục, lượng điều khiển trên 1 form chỉ bị hạn chế bởi lượng bộ nhớ của máy. Tuy nhiên, bạn nên nhớ rằng càng nhiều điều khiển thị càng làm chậm chương trình vì form phải quản lý các điều khiển này qua các event, message.

Bạn có thể trình bày dạng ứng dụng nào đòi hỏi nhiều điều khiển như vậy không?

anhkiet1993
24-04-2008, 15:01
Ko phải mình làm chương trình mà mình đang làm điều khiển lưới( vì kô tìm được bộ Sheridant Data Widgets, nếu bạn có bít cách nào để tạo lưới đơn giản hơn thì chỉ mình với

huytranaz
24-04-2008, 16:34
Ko phải mình làm chương trình mà mình đang làm điều khiển lưới( vì kô tìm được bộ Sheridant Data Widgets, nếu bạn có bít cách nào để tạo lưới đơn giản hơn thì chỉ mình với
Mình cũng đoán ra điều này, nhưng bạn làm bằng textbox thì mệt mỏi đấy vì những lý do sau:

1. Quá nhiều điều khiển, hệ thống sẽ ì ạch. Ví dụ, nếu bạn có 1 bảng gồm 5 cột, 100 dòng thôi thì số lượng textbox sẽ là: 5x100 = 5000 textbox.

2. Rất khó xử lý dữ liệu.

3. Rất khó khăn khi thực hiện các tác vụ trên lưới như: Đánh dấu các cell, đổi vị trí cột, thay đổi kích thước cột, cuộn dữ liệu lên xuống.

Mình khuyên bạn:

Nếu có khả năng, hãy xây dựng cho mình 1 điều khiển lưới, thực ra làm lưới cũng không khó lắm đâu. Bạn có thể down vài source về lưới về nghiên cứu thử xem:
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=58265&lngWId=1
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=28450&lngWId=1&txtForceRefresh=4242008527306530

anhkiet1993
25-04-2008, 16:11
Mình cũng đoán ra điều này, nhưng bạn làm bằng textbox thì mệt mỏi đấy vì những lý do sau:

1. Quá nhiều điều khiển, hệ thống sẽ ì ạch. Ví dụ, nếu bạn có 1 bảng gồm 5 cột, 100 dòng thôi thì số lượng textbox sẽ là: 5x100 = 5000 textbox.

2. Rất khó xử lý dữ liệu.

3. Rất khó khăn khi thực hiện các tác vụ trên lưới như: Đánh dấu các cell, đổi vị trí cột, thay đổi kích thước cột, cuộn dữ liệu lên xuống.

Mình khuyên bạn:

Nếu có khả năng, hãy xây dựng cho mình 1 điều khiển lưới, thực ra làm lưới cũng không khó lắm đâu. Bạn có thể down vài source về lưới về nghiên cứu thử xem:
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=58265&lngWId=1
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=28450&lngWId=1&txtForceRefresh=4242008527306530

Thì mình đang làm điều khiển lưới mà, mình ghép các textbox thành các cột các cột này mình đưa vào UserControl=>mình được điều khiển cột, rồi dùng điều khiển cột đó đưa vào một usercontrol khác và ghép nhiều cột thành một lưới. Mình dùng lệnh để thêm textbox vào cột và thêm cột vào điều khiển lưới tự chế. Còn cái vụ cuộn lên xuống ấy à, vô cùng đơn giản,mình đưa tất cả các cột vào trong một cái PictureBox, Tất nhiên PictureBox đó có chiều cao bằng với cột và chỉ cần cái pictureBox nó di chuyển là mấy cái cột kia cũng di chuyển theo=>ý tưởng hay đó nhỉ, liệu cách này có hay kô nhỉ. Cảm ơn bạn nhiều, có lẽ mình sẽ dùng mấy cái nguồn của bạn cho đề án của mình chứ đi làm mất thời gian quá, nhưng dù sao mình vẫn thích Sheridant Data Widgets(kô tìm được link download mới chết chứ, lên Shersoft thì kô tìm ra, chắt đổi tên rồi