- Tham gia
- 17/8/08
- Bài viết
- 8,662
- Được thích
- 16,722
- Giới tính
- Nam
Những cái này có thể làm được nhưng nếu làm trong Excel thì rồi cũng có "bệnh" như bạn Tuân nói. Khi Textbox nào đó có Focus nhưng rồi Form mất Focus --> Form lấy lại Focus thì bạn không có trỏ text trong Textbox mà trước đó có Focus.
Bạn Tuân nói: sau khi đặt trỏ chuột vào cell --> click thanh tiêu đề hay Form thì không có trỏ text (caret) trong Textbox. Nhưng không chỉ thế. Bằng bất cứ cách nào bạn làm cho Form mất Focus vd. nhấn "lá cờ Windows" thì sau khi click vào Form bạn không nhìn thấy caret trong text box.
Rõ ràng đây là lỗi của Excel.
Có thể khắc phục nửa vời. Nửa vời vì bạn không khắc phục được lỗi trên nhưng khi Form được show thì bạn có thể trong Activate thực hiện SetFocus vào textbox tùy ý (bạn thử thêm 3 textbox rồi SetFocus vào textbox bất kỳ). Làm như thế nào?
Trong code của bạn Tuân trong Initialize của UserForm1 bạn bỏ dòng "SetParent hForm2, hForm" còn trong Acivate của UserForm2 bạn SetFocus cho textbox. Nếu bạn muốn có caret trong textbox đầu tiên thì bạn chả cần SetFocus làm gì vì "tự nó sẽ có".
Không phải vậy Anh ơi, ý em là đổi desktop background đó mà, không hiện 2 form lên 1 lúc nên ta không cần thiết phải show modal. Chỉ là tạm thời tắt chế độ Icon trên desktop, sau đó thay đổi cái backgound của màn hình bằng cái hình của mình, sau đó, trả lại cái hình cũ của máy rồi hiện lại Icon thôi. Thủ công mình làm cũng được mà, nhưng với code thì em đâu biết làm nên mới hỏi vậy mà Anh.