Làm sao để giấu textbox đi??????

Liên hệ QC

thienthanbe

Thành viên mới
Tham gia
27/10/08
Bài viết
43
Được thích
2
Các bác ơi!
Em có 1 form trong đó có 1 textbox, nhưng em muốn ban đầu khi form hiện ra thì textbox chưa xuất hiện, chỉ khi nào nhấn nút command Hiện thì nó mới hiện ra thì viết code như thế nào?
Các bác giúp em với, cảm ơn các bác.
 
Giả sử textbox có tên là txt_ten:
1/Khi ẩn đặt vào sự kiện Forn activate:

Me.txt_ten.Visiable=False.
2/Nhấn nút hiện:
Đặt vào mã nhấn nút lệnh:

Me.Txt_ten.Visiable=True

Hôm nào có vấn đề gì khó en lại nhờ bác giúp em với. Em tự học VBA for EXCEL nhưng đọc sách hiểu chẳng được bao nhiêu.
Không có vấn đề gì,mình cũng đang học như bạn, trên diễn đàn có rất nhiều người sẵn sàng giúp bạn. Mình thấy "Vọc" cũng là biện pháp học vừa nhanh vừa thiết thực. Chúc bạn thành công.
(Lưu ý: Chủ đề lần sau đánh 1 dấu hỏi là đủ)
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Không có vấn đề gì,mình cũng đang học như bạn, trên diễn đàn có rất nhiều người sẵn sàng giúp bạn. Mình thấy "Vọc" cũng là biện pháp học vừa nhanh vừa thiết thực. Chúc bạn thành công.
(Lưu ý: Chủ đề lần sau đánh 1 dấu hỏi là đủ)
Em viết thế này mà không được.
bác sửa lại giúp em với

Sub Run()
UserForm1.Show vbModal
Me.Label1.visiable = False
End Sub
 
Upvote 0
Em viết thế này mà không được.
bác sửa lại giúp em với

Sub Run()
UserForm1.Show vbModal
Me.Label1.visiable = False
End Sub
Không được là đúng rồi, bạn phải đặt dòng lệnh trong 1 trên 2 event sau (chon 1 trong 2) của form:

-Activate.
-Inlitialize.

(Mình làm thử ví dụ nhé)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em viết thế này mà không được.
bác sửa lại giúp em với

Sub Run()
UserForm1.Show vbModal
Me.Label1.visiable = False
End Sub
Vấn đề ở đây là bạn chưa hiểu rõ về từ khóa Me. Từ khóa Me dùng để thay cho đối tượng Form hiện tại mà bạn đang viết code. Ví dụ bạn đang viết code cho 1 form có tên là Form1 và trên Form1 có 1 Textbox là Text1, khi bạn muốn truy xuất tới Text1 bạn có thể viết theo là Form1.Text1, hoặc Me.Text1. Còn khi bạn có 1 form khác nữa là Form2 và đứng tại Form2 để truy xuất tới Text1 tại Form1 thì bạn phải viết tường minh là Form1.Text1, nếu bạn gõ là Me.Text1 thì nó sẽ hiểu là Text1 của Form2. Ở đoạn code trên bạn có 1 Sub để Show UserForm1 lên, như vậy tôi hiểu Sub này là của 1 Module hoặc 1 Form khác không phải là UserForm1. Vậy khi bạn viết Me.Label1 thì Lable1 này không phải là của UserForm1. Bạn sẽ phải viết tường minh là UserForm1.Lable1 mới chính xác. Thêm 1 điều nữa là câu lệnh làm ẩn Label1 phải thực hiện trước khi Show lên mới chính xác. Bạn viết lại code này như sau sẽ ok.
Mã:
Sub Run()
  UserForm1.Label1.Visible = False
  UserForm1.Show vbModal
End Sub
 
Upvote 0
To rollover79:
Thực ra, chỉ cần chỉ dẫn tường minh là có thể can thiệp vào bất cư Cont. của Form nào nếu nó được mở. Nhưng ta không nên can thiệp vào từ các lệnh rời rạc mà nên tập trung vào Form cần đk, khi cần thiết ta gọi lại lệnh đó . Thế nên trong ví dụ mình cố ý viết thành 2 khối lệnh đk an1 và an2. Khi cần đến ta không phải viết lại mà cứ gọi nó là xong.
Còn đại từ Me luôn đại diện cho Form chứa lệnh, đây là quy ước của VB mà thôi. Trong VS Foxpro sử dụng đại từ This
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử đoạn code sau:
Mã:
Private Sub TextBox1_Change()
Me.TextBox1 = Format(Me.TextBox1, "#,##0")
End Sub

Bạn nên viết thêm code nếu nhập không phải số thì không nhận ký tự.
 
Upvote 0
Bạn thử đoạn code sau:
Mã:
Private Sub TextBox1_Change()
Me.TextBox1 = Format(Me.TextBox1, "#,##0")
End Sub
Bạn nên viết thêm code nếu nhập không phải số thì không nhận ký tự.

Ý em muốn là khi mhập số vào textbox thì nó tự động hiện ra theo dạng 2.000.000 đấy bác
 
Upvote 0
Ý em muốn là khi mhập số vào textbox thì nó tự động hiện ra theo dạng 2.000.000 đấy bác
Code mình gửi đã test cẩn thận, cứ chép vào đúng event là được.
Để hiện dấu chấm thay dấu phảy bạn phải điều chỉnh trong Control Panel. Nếu tự thêm vào cho vừa ý thì khi update dữ liệu lại phải chuyển về dạng số quá lòng vòng.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom