Listview và Listbox - Hỏi về ưu khuyết.

  • Thread starter Thread starter cantl
  • Ngày gửi Ngày gửi
Liên hệ QC

cantl

!!! Giải thoát !!!
Thành viên bị đình chỉ hoạt động
Tham gia
6/8/08
Bài viết
1,816
Được thích
1,162
Giới tính
Nam
Chào các bác,
Các bác cho em hỏi giữa Listview và Listbox thì nên chọn cái nào lên form cho hoành tráng ạ?
Em không muốn dùng theo kiểu tùy trường hợp, mà chỉ có thể chọn 1 mà thôi.
Ưu, khuyết là gì ạ?
 
Mò đâu ra được cái link cũng phô ra cho được cái "Bông hoa lá cành".

Sao không bỏ thời gian đi tìm cái link tinh hoa lập trình VB hội tụ tại một bài viết này này:
 
Upvote 0
Toàn API RÁC bày đặt...................VBA lỗi thời và ọp ẹp cứ làm ra vẻ cao siêu
 
Upvote 0
Thay vì thời gian bỏ ra "Màu mè" như vậy ta đi tìm những thứ trợ giúp bài viết kiểu như thế này. Hơi sức đâu đi làm "Anh hùng cứu thế giới" ghê gớm vậy.


Ví dụ một ListView lập trình API của ông Raul388 này này:

HeaderMenu.JPG

ActiveColumn.JPG

ImplementControlColumn.PNG
 

File đính kèm

Upvote 0
Nên dẫn các bạn thích lập trình đi vào chuyên nghiệp sớm anh @Nguyễn Duy Tuân, nếu như đang tuổi 23 hiểu sớm còn hơn chờ 30 mới biết "chuyện". ...

Mình đồng tình việc lập trình nên hướng dần đến tính chuyên nghiệp. Chuyên nghiệp nó thể hiện từ rất nhiều khía cạnh trong lập trình từ việc trình giao diện làm sao, format code như thế nào, tổ chức code, đặt tên,.... ti tỉ thứ mà người lập trình cần có nhiều thời gian học dần. Lập trình API để tạo ra control người lập trình cần có trình độ cao vượt bậc chứ không phải bình thường. Những bạn đam mê lập trình và muốn chinh phục lập trình API để tạo control thì cứ thong thả nghiền ngẫm lâu dài chứ không dễ ăn đâu.

Tiếp nối nội dung mình trình bày ở bài trước thì mình thêm ý kiến về việc lựa chọn control nào cho phần mềm của bạn.
Nếu bạn lựa chọn ListBox trong MSForms thì ta không bàn tiếp nữa. Còn nếu vì cần phải dùng controls ngoài để đáp ứng giao diện ứng dụng bạn phải lựa chọn control ngoài thì cần xem xét:
+ Nếu bạn chưa đạt đến trình độ cao siêu về API thì nên lựa chọn đồ có sẵn, đó là các activex controls. Bạn chỉ cần học cách đẩy dữ liệu vào, đưa code tương tác vào các sự kiện của control là xong. Dành thời gian vào code nghiệp vụ, các kỹ thuật thuộc về control đã có nhà phát triển làm. Việc đăng ký OCX khi chạy ở máy khác là việc rất bình thường. Khi tạo phần mềm mà bạn muốn phân phối tới người khác sử dụng dễ dàng bạn nên học tạo bộ Setup để tự động hóa việc đăng ký.

+ Nếu bạn muốn file của mình có mã nguồn tạo control 100%, - không dùng activex controls thì bạn phải rất cẩn thận. Lập trình API tạo controls chạy trong VBA là rất khó, bạn không thể bê nguyên code trong VB6 sang, bạn cũng không thể dùng code từ đời Office 2007 trở về trước vì nó hoàn toàn viết cho 32-bit. Từ Office 2010 trở lại đây có hai phiên bản 32 và 64-bit nên các code cũ chưa được nâng cấp phần lớn lỗi với 64-bit. Các bạn không thuộc chuyên gia về API thì không tự sửa được đâu. Vậy nếu bạn xác định dùng mã nguồn loại này thì bạn cần phải có chỗ dựa đó là một ai đó đủ khả năng hỗ trợ bạn sửa code để control chạy ngon lành nếu không là đứt gánh giữa đường.
 
Upvote 0
Cái nào người viết code VÀ người nhập code vào file cho người dùng có đủ tự tin để giải thích chỉ dẫn cho người dùng và biết nhận thức những biến cố ngoài dự tính và debug được thì là cái nên dùng.

Ở trình độ thớt (lời thật mất lòng) những cái bàn về phần mềm cao siêu lắm. Thớt có học hôm nay thì cũng vài tuần là quên hết. Bắt buộc phải trải kinh nghiệm thôi.

Mấy thằng "Lập Trình Viên nổi tiếng" khó chịu lắm. Bảo chúng fill cái metrics để mình xem có thể áp dụng được cho đồ án, chúng nhăn như khỉ đột. Hầu hết các trường hợp mình phải nhắc lại "tôi không chú tâm lắm về nghề code của anh/chị. Đó là công việc của người tuyển dụng. Cái tôi chú trọng là sản phẩm của anh/chị có bảo đảm là thích hợp cho đồ án của tôi không? cái metrics tôi đưa ra là mục đích ấy"
 
Lần chỉnh sửa cuối:
Upvote 0
@Nguyễn Duy Tuân anh nói VBA khó viết API, làm các bạn mới học VBA sợ run tay chân hết.
Dễ như ăn một miếng bánh nhưng "bánh API hơi to hơi cứng hơi khô" một xíu thôi.
Học API chịu đọc, chịu tìm hiểu, chịu khó, chịu thiệt, chịu suy tư, suy nghĩ, suy ngẫm, chịu vận động não bộ, chịu ngồi vào máy tính là có thể thành công.


Có thành công nào mà thiếu đi nỗ lực. Nếu các bạn không tin thì VBA mình xuất phát từ con số 0.

Học ở người chửi, đánh mình càng nhớ lâu, thấm sâu.
Học ở người ghanh ghét, ghanh đua càng chạy nhanh.
Học ở người nhân cách lớn càng mạnh mẽ, hùng dũng.
Học ở người trí tuệ lớn càng thông minh, hoàn thiện.
 
Upvote 0
Tưởng khoe cái gì hoá ra VB6 ... vãi kinh hồn xem xong mút được gì từ mã đó

Tôi chơi VB6 gần 10 na9m nay trên máy có tầm 20 GB mã chọn lọc các kiểu ... đầy ra còn của ai cái đó thì cái biết tác giả cái không

Trong cái ucListView nó có khoãng 4600 dòng code à

1705495820471.png

Mã nguồn VB6, ASM ... của "The trick" trên máy của tôi có trên 5 GB khoãng trên 200 dự án code mẫu gì đó

Nó tham gia nhiều Web Quốc tế ... đọc xem


Thong thả dò đi thấy vài web nữa ... bày đặt khoe VB6 :p ... khoãng vài năm trước thì không khoe . tầm này họ đang từ bỏ dần hết rồi lại lôi ra khoe

xem đi sẽ thấy đầy mã VB6 đỉnh cao của chóp thôi rồi tự thấy mình là ai à --=0--=0--=0 xong lên mấy Web đó nổ siêu sọt rác xem sao ?

vào link sau mà xem cái AddIns cho VB6 nó khoãng 16 ngàn dòng code và mã ASM thôi
 
Lần chỉnh sửa cuối:
Upvote 0
ai đó tò mò có thể tham khảo thêm cách họ sử dụng HTMLGrid tạo lưới xem dữ liệu

mã nguồn sau của tay code quốc tịch Đức viết ... có trên máy tôi vài năm trước .... Tôi Copy úp lại trên đây

1705548963591.png

Nếu có khả năng hack thì vào link sau bà tám với tay hacker Nga ngố và The Trick ...

Thong thả vươn xa ra các Web quốc tế bà tám xem rồi tự biết khả năng code két của chính mình là gì thôi ?!!!

 

File đính kèm

Upvote 0
Theo tôi mọi người không nên share mã tạo controls trong VB6 vào đây vì VBA không thể dùng nó.
 
Upvote 0
Tôi cũng không muốn share mã tạo controls trong VB6 làm gì vì nó cổ rồi và không còn phù hợp với Office 64 bít nữa ...

họ khoe thì Tôi úp cho tham khảo đơn giản mà không ôm mớ API RÁC ...thôi chứ không mang lại giá trị gì cả khi tái sử dụng nó cho VBA

Với lại nhiều API sử dụng tốt trên VB6 nhưng đó là API cũ và có nhiều hàm không còn sử dụng tốt trên Office x64 và Windows 11

nên cũng không cần thiết tái sử dụng nó làm gì cho mất thời gian vô tích sự
 
Lần chỉnh sửa cuối:
Upvote 0
Tính ra đọc mấy bài viết gần đây thấy nhiều cái hài ghê :D .
Không biết tự khi nào, thế giới đã tồn tại kiểu người như thế này và có thể bạn đã gặp:

Người đó mới đi du lịch một vài quốc gia mà tự lên mặt rằng đã hiểu hết toàn bộ thế giới.

Người đó chỉ đọc có vài quyển sách đã bắt đầu đi dạy đời người khác như thể mình biết hết chữ nghĩa trên đời này vậy.
Bởi vậy..
Shakespeare từng nói: "Kẻ ngu cho rằng mình khôn, nhưng người khôn tự biết mình khôn." Nhiều khi sự khoe khoang của bạn chẳng là gì trong mắt người khác, mà ngược lại, họ cảm thấy bạn như đang làm trò hề vậy.

- Mình mới lên vài trang web quốc tế (và bị banned nick :D:D) thì lại nghĩ nhưng người khác yếu kém hơn mình, không vươn tầm thế giới. Với đầu óc hạn hẹp của hắn ta, đâu biết rằng diễn đàn này có rất nhiều người là thành viên, thường xuyên đọc các trang như: stackoverflow, github, codeproject, reddit, medium, W3Schools, sqlservercentral... (chắc là đọc không cần phải qua google dịch rồi).
- Có cả kho code, thượng vàng hạ cám đều có hết (đôi khi hắn không biết đâu là vàng đâu là cám mới chết), nhưng cái bi kịch là cả chục năm không tự viết ra được cái gì có ích mặc dù cái đơn giản nhất, có thể gọi là "xài" được.
- À còn một cái bi kịch nữa tôi chắc bà con trên đây đều biết đó là: "Tâm lý của kẻ thua cuộc". Người này thường sẽ có thói quen hạ thấp, chê bai những công việc, sản phẩm của người khác để nâng mình lên, để mọi người chú ý tới mình hơn nhưng không ngờ càng làm mọi người càng buồn cười và càng "chán không thèm nói" :D:D .
Thôi không nói nhiều nữa sợ nói nhiều người ta đọc cũng không hiểu...-0-0-0-
 
Upvote 0
Bu lại xong trầu dìa và trỏ mõm là giỏi thôi ... Tôi bị hack mất đầy nick vào thời điểm bị virus mã hoá máy tính

Không phải cứ mất nick là xấu ... ngu mới hiểu như vậy

1705582745416.png
 
Upvote 0
Việc chọn ListView (control trong MSCOMCTL.OCX) hay ListBox trong MSForms thì cần xem nhu cầu thực sự chức năng mà mình thiết kế. Mỗi cái có ưu điểm nổi bật riêng:
ListView của MS
- Chỉ chạy trong môi trường 32-bit. Nếu ứng dụng bạn viết không khắt khe về môi trường, người dùng chấp nhận chỉ cài Office 32-bit thì điều này chấp nhận được.
- Không hỗ trợ unicode. Về khoản này thì điểm trừ nhiều nhất với ứng dụng dùng font unicode.
- Tùy biến hiển thị (định dạng font, màu sắc, hình ảnh giữa các dòng) gần giống với cách hiển thị của Windows Explorer (cũ). Trình độ lập trình càng cao thì càng có khả năng tùy biến hiển thị nó phong phú.

ListBox trong MSForms
- Là control thuộc MSForms được cài đặt kèm theo bộ Office nên đương nhiên hỗ trợ cả 32 và 64-bit.
- Hỗ trợ unicode
- Với số lượng dữ liệu khá lớn tốc độ load nhanh.
- Hạn chế duy nhất là hiển thị rất giản đơn, không tùy biến định dạng màu sắc, font các dòng, không đính kèm hình ảnh được.
Ngoài những vấn đề anh Tuân nói thì ListBox có ưu điểm load dữ liệu theo nhiều cách để nhanh hơn rất nhiều so với ListView, thay vì cả 2 đều có thể dùng phương thức AdItem, nhưng ListBox còn có thuộc tính RowSource, thuộc tính List và thuộc tính Column để load dữ liệu. Trong khi nếu AdItem thì dữ liệu càng nhiều thì dùng vòng lặp càng chết thời gian.
 
Upvote 0
Ngoài những vấn đề anh Tuân nói thì ListBox có ưu điểm load dữ liệu theo nhiều cách để nhanh hơn rất nhiều so với ListView, thay vì cả 2 đều có thể dùng phương thức AdItem, nhưng ListBox còn có thuộc tính RowSource, thuộc tính List và thuộc tính Column để load dữ liệu. Trong khi nếu AdItem thì dữ liệu càng nhiều thì dùng vòng lặp càng chết thời gian.
chính xác như vậy ListBox chạy rất nhanh ... hãy thử dữ liệu nhiều nhất có thể là thấy ngay thôi
 
Upvote 0
Upvote 0
Tính ra đọc mấy bài viết gần đây thấy nhiều cái hài ghê :D .
<quote 1/>
Bởi vậy..
<quote 2/>
Mấy cái này bạn quote ở đâu vậy:
Quote 1: người viết cố tình chửi đạo giáo. Cả Giê-su lẫn Si-Đạt-đa đâu có ai đọc nhiều sách hay đi cũng thế giới đâu?
Quote 2: Shakespeare có nghề bẻ chữ. Người viết cũng là người tự mình diễn giải lời "danh nhân" thôi.
 
Upvote 0
Mấy cái này bạn quote ở đâu vậy:
Quote 1: người viết cố tình chửi đạo giáo. Cả Giê-su lẫn Si-Đạt-đa đâu có ai đọc nhiều sách hay đi cũng thế giới đâu?
Quote 2: Shakespeare có nghề bẻ chữ. Người viết cũng là người tự mình diễn giải lời "danh nhân" thôi.
:D Bác suy diễn ra xa quá rồi. Những nhân vật như bác nói cả thế giới có được mấy người mà người viết dám nói tới họ bác. À mà có khi diễn đàn này lại có một...
 
Upvote 0
Bác @SA_DQ là ông già khựa hay sao mà ai cũng hay nhắc

Do bác này hay reaction bài viết em, nên em bực mình đã dùng công nghệ để ẩn reactionsList của diễn đàn. Nhìn bác đưa bàn tay ok là thấy móng tay bác luôn, chán. Thấy bắt ghê, móng toàn "vi khuẩn thời tiền sử".

Bài của anh Tuân có mấy thành viên reaction, giờ đã không thấy nữa:
1705595662814.png


Lỡ tay làm sao không biết, ẩn mất luôn cái nút "Show ignore content", nên các bài viết "mấy nhân vật vip" cũng ẩn mất tiêu. Giờ chẳng làm cách nào đọc được.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom