" />
  • Thứ Năm, 12/06/2008 17:54 (GMT+7)

    Tạo mask trong textbox, VB6

    Câu hỏi :
    Cách tạo TextBox trong VB 6.0 luôn hiển thị các dấu ngăn "/" để nhập ngày/tháng/năm, khi nhập giá trị vào textbox các dấu ngăn không bị xóa đi?
     

    Trả lời :

    Bản thân điều khiển TextBox của VB 6.0 (hay của một môi trường lập trình trực quan nào khác) chỉ cho phép nhập vào/ hiển thị nội dung dạng chuỗi ký tự tổng quát. Nếu muốn dùng TextBox để nhập thông tin ngày/tháng/năm với sự kiểm soát theo yêu cầu đặc biệt thì bạn phải viết hàm xử lý sự kiện KeyDown hay KeyPress của TextBox. Giải thuật giải quyết việc hiển thị các dấu ngăn / giữa các giá trị ngày/tháng/năm và ngăn không cho người dùng xóa/thay đổi các dấu ngăn này là khá phức tạp, bạn khó lòng viết được.

     Một trong những cách khắc phục vấn đề trên là dùng điều khiển ActiveX có tên là DTPicker của thư viện "Microsoft Windows Common Control 2-6.0". Điều khiển DTPicker cho phép bạn hiển thị/nhập vào thông tin ngày/tháng/năm theo đúng yêu cầu của bạn. Qui trình điển hình để sử dụng ActiveX DTPicker trong ứng dụng gồm các bước sau:

     - Chạy VB 6.0, mở lại Project ứng dụng của bạn hay tạo mới Project.
     - Chọn menu Project.Components để hiển thị cửa sổ Components, duyệt tìm và chọn mục "Microsoft Windows Common Control 2-6.0" rồi nhấn button Ok để "add" các ActiveX trong thư viện này vào cửa sổ ToolBox của Project ứng dụng hiện hành.
     - Chọn ActiveX DTPicker trong ToolBox rồi vẽ nó ở vị trí thích hợp trong Form giao diện, nên đặt lại tên nhận dạng cho nó để dễ truy xuất trong lập trình (tên mặc định là DTPicker1).
     Khi Form chạy, điều khiển DTPicker1 sẽ hiển thị ngày/tháng/năm hiện hành, bạn có thể chọn từng field ngày/tháng/năm của nó và hiệu chỉnh lại theo ý muốn. Để truy xuất giá trị của điều khiển DTPicker, bạn dùng thuộc tính Value của nó như đoạn code VB 6.0 như sau:
     'truy xuất nội dung theo kiểu Date
     Dim d As Date
     d = DTPicker1.Value
     'hay truy xuất nội dung theo kiểu chuỗi
     Dim s As String
     s = DTPicker1.Value
     Lưu ý định dạng hiển thị ngày/tháng/năm của điều khiển DTPicker được qui định bởi Windows, nếu cài Windows mặc định (dùng locale US) thì định dạng sẽ là mm/dd/yyyy. Trong trường hợp này, nếu bạn muốn dùng định dạng dd/mm/yyyy giống thói quen của người Việt, bạn hãy vào Control Panel, chạy "Regional and Language Options", chọn tag "Regional Options", chọn button Customize, chọn tag Date rồi nhập chuỗi "dd/mm/yyyy" vào comboBox "Short date format".
     

    Chuyên mục: Lập trình