Nhờ tư vấn thiết kế CỬA SỔ HELP (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,964
Tôi đang làm 1 AddIn và muốn thiết kế một cửa sổ Help (để trợ giúp khi người dùng bấm vào 1 Button)
Nội dung trong cửa sổ Help này chỉ độ chừng 20, 30 dòng nên tôi muốn thiết kế nó một cách gọn nhẹ nhất. Tôi đang phân vân với một vài lựa chọn:
- Cách 1: Dùng 1 UserForm
- Cách 2: Dùng 1 Dialog Sheet
- Cách 3: Vẽ 1 Rectangle và cho nội dung help vào đó

----------------------------------------------
Cách 1: Tôi không khoái lắm, vì trong ứng dụng của tôi không dùng UserForm. Vậy nên nếu chọn cách này thì UserForm hóa ra chỉ làm mỗi nhiệm vụ Help thôi sao?
Cách 2: Cũng không khoái (lý do như cách 1)
Cách 3: Hơi thích thích cách này. Chỉ khổ một nỗi, khi cửa sổ này hiện ra, người dùng chọn vào rồi bấm Delete trên bàn phím thì cũng đi đời
----------------------------------------------
Các bạn giỏi về thiết kế có thể tư vấn cho tôi cách nào khác nữa không? Quan trọng là gọn nhẹ và thẩm mỹ (mà cái vụ thẩm mỹ này tôi lại không có năng khiếu gì mấy)
Các bạn chỉ cần TƯ VẤN về giao diện thôi, mọi chuyện khác tôi có thể lo được
 
Cách 3 bác dùng protect sheet thì sợ gì?
 
Cách 3 bác dùng protect sheet thì sợ gì?

Nhưng đây là 1 AddIn mà thầy.
Tức là sau khi người dùng bật AddIn lên, nó sẽ hoạt động trên ActiveWorbook của người dùng, chẳng lẽ mình lại "vô cớ" đi Protect sheet của người ta?
Hay ý thầy là: tạm Protect sheet, tắt cửa sổ xong lại Unprotect?
 
Nhưng đây là 1 AddIn mà thầy.
Tức là sau khi người dùng bật AddIn lên, nó sẽ hoạt động trên ActiveWorbook của người dùng, chẳng lẽ mình lại "vô cớ" đi Protect sheet của người ta?
Hay ý thầy là: tạm Protect sheet, tắt cửa sổ xong lại Unprotect?

À, em kô đọc kỹ. Bác sử dụng phương pháp đó là hợp lý, em vẫn dùng cách để code hoạt động tốt khi protect sheet
 
Dùng đối tượng shap để làm cho đẹp. Làm một hàm tạo đói tượng, nếu người dùng xoá thì tại lại. Em đã làm cách này trong chương trình đấu giá sn năm ngoái.

daugia.jpg
 
Lần chỉnh sửa cuối:
À, em kô đọc kỹ. Bác sử dụng phương pháp đó là hợp lý, em vẫn dùng cách để code hoạt động tốt khi protect sheet

Tạm ổn, nhưng cũng hơi.. buồn cười nhỉ?
Ngoài ra, còn mấy vấn đề:
- Nếu dùng cách 3, tức ta làm sẵn 1 cửa sổ trong file AddIn rồi khi người dùng bấm Button sẽ cho cửa sổ ấy hiện ra trên ActiveSheet
- Vậy trường hợp ActiveSheet đã bị Protect trước đó (do người dùng Protect) thì làm sao mà Paste được cửa sổ Help vào đây?
 
Tạm ổn, nhưng cũng hơi.. buồn cười nhỉ?
Ngoài ra, còn mấy vấn đề:
- Nếu dùng cách 3, tức ta làm sẵn 1 cửa sổ trong file AddIn rồi khi người dùng bấm Button sẽ cho cửa sổ ấy hiện ra trên ActiveSheet
- Vậy trường hợp ActiveSheet đã bị Protect trước đó (do người dùng Protect) thì làm sao mà Paste được cửa sổ Help vào đây?
Vậy thì mình Add 1 sheet mới hoàn toàn = 1 phím nóng nào đó, ở sheet này Thầy có thể thêm vào cái gì đó tùy thích. Sau cùng là nếu người dùng Deactivate thì Thầy xóa nó đi....
 
Dùng đối tượng shap để làm cho đẹp. Làm một hàm tạo đói tượng, nếu người dùng xoá thì tại lại. Em đã làm cách này trong chương trình đấu giá sn năm ngoái.


Đúng là mình đang ưu tiên cách này (vì nó gọn và đẹp)
Nhưng như mình đã nói ở trên: Nếu người dùng đã protect sheet trước đó thì làm sao "show" cái shape ấy lên?
---------------------------
Vậy thì mình Add 1 sheet mới hoàn toàn = 1 phím nóng nào đó, ở sheet này Thầy có thể thêm vào cái gì đó tùy thích. Sau cùng là nếu người dùng Deactivate thì Thầy xóa nó đi....
Nếu người ta Protect Workbook thì làm sao đây ta?
Cũng phiền quá nhỉ?
--------------------------

Mình cũng từng nghĩ đến phương pháp dùng API vẽ lên mản hình 1 shape, nhưng xem ra nếu chọn cách này thì nói không chừng code phụ để hiện Help còn dài hơn code chính
Loay hoay mãi không biết nên chọn loại nào: Vừa thoải mái như Form và DialogSheet (không phụ thuộc việc người ta protect sheet hay workbook) nhưng lại vừa đẹp như Shape ---> Là loại gì đây ta?
 
Lần chỉnh sửa cuối:
Để protect data thôi, không protect object là được.
 
Để protect data thôi, không protect object là được.

Ah! Tuân chưa hiểu ý mình
Sau khi AddIn ấy được gọi lên, code sẽ hoạt động trong ActiveWorkbook của người dùng... Mà người dùng họ muốn protect cái gì và protect thế nào mình đâu có can thiệp được chứ
Bởi vậy, nếu họ mở 1 file mà file này đang protect, giờ họ bấm nút Help trong AddIn của mình thì cái Shape ấy làm sao show ra?
Khoai quá!
 
Đúng là mình đang ưu tiên cách này (vì nó gọn và đẹp)
Nhưng như mình đã nói ở trên: Nếu người dùng đã protect sheet trước đó thì làm sao "show" cái shape ấy lên?
---------------------------

Nếu người ta Protect Workbook thì làm sao đây ta?
Cũng phiền quá nhỉ?
--------------------------

Mình cũng từng nghĩ đến phương pháp dùng API vẽ lên mản hình 1 shape, nhưng xem ra nếu chọn cách này thì nói không chừng code phụ để hiện Help còn dài hơn code chính
Loay hoay mãi không biết nên chọn loại nào: Vừa thoải mái như Form và DialogSheet (không phụ thuộc việc người ta protect sheet hay workbook) nhưng lại vừa đẹp như Shape ---> Là loại gì đây ta?
Vậy thì tạo riêng file Help, khi cần cái nào ta có thể gọi cái đó lên, khỏi sợ phiền toái ở sheet, tuy nhiên lúc nào cũng có 1 "cục" .chm ở một nơi nào đó.
Vậy em nghĩ dùng userform sẽ là giải pháp tối ưu.
 
À, nếu a không dùng userform thì dùng API tại Balloon tip vừa đẹp vừa chuyên nghiệp anh a.
 
Web KT

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

Back
Top Bottom