Độ dài & cao của TextBox và RichTextBox khớp đoạn text

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Moderator: tungblt

Post Reply
nguoimoiden
Thành viên chính thức
Thành viên chính thức
Posts: 49
Joined: Thu 31/12/2009 10:38 pm

Độ dài & cao của TextBox và RichTextBox khớp đoạn text

Post by nguoimoiden »

Xin hỏi làm sao cho chiều rộng (Width) của TextBox vừa khớp với văn bản (Text)?
- Ví dụ: vẽ lên form 2 TextBox, nhập văn bản lần lượt vào từng TextBox. Sau đó quay lại click chuột lên TextBox1 rồi TextBox2. Xin hỏi làm sao cho chiều rộng (Width) của 2 TextBox vừa khớp với văn bản (Text)?
Last edited by nguoimoiden on Thu 02/12/2010 8:03 am, edited 3 times in total.
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Re: Hỏi về TextBox

Post by truongphu »

1- cho form và textbox cùng fontname và size
2- dùng Me.TextWidth("textbox.text") để xác định độ dài của text
3- thêm một ít khoảng space ở 2 đâu text cho đẹp, đấy chính là textbox.width cần tìm
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
nguoimoiden
Thành viên chính thức
Thành viên chính thức
Posts: 49
Joined: Thu 31/12/2009 10:38 pm

Re: Độ dài TextBox khớp đoạn text

Post by nguoimoiden »

Khi trường hợp form và textbox không cùng fontname và size thì làm sao?
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Re: Độ dài TextBox khớp đoạn text

Post by truongphu »

nguoimoiden wrote:Khi trường hợp form và textbox không cùng fontname và size thì làm sao?
Bạn suy nghĩ kiểu như thế thì làm seo mà đi tới trên con đường lập trình? :-O
-> thì set font trở lại cho form
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
nguoimoiden
Thành viên chính thức
Thành viên chính thức
Posts: 49
Joined: Thu 31/12/2009 10:38 pm

Re: Độ dài TextBox khớp đoạn text

Post by nguoimoiden »

OK! sorry truongphu, hôm nay chủ nhật, mới uống có mấy ve về mà ngu rồi!
yeuVb=yeuVo
Thành viên chính thức
Thành viên chính thức
Posts: 16
Joined: Sat 30/10/2010 6:17 pm

Re: Độ dài TextBox khớp đoạn text

Post by yeuVb=yeuVo »

- Bạn xem thử code này dùng được không?

Code: Select all

 
      Private Sub Form_Load()
          Me.Font = Text1.Font
      End Sub

      Private Sub Text1_Change()
          Text1.Width = Me.TextWidth(Text1.Text) + 250 ' (có thể thay tùy ý, ví dụ 250 = 30)
      End Sub 
toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Posts: 77
Joined: Tue 30/11/2010 1:12 am
Has thanked: 12 times

Re: Độ dài TextBox khớp đoạn text

Post by toihocVB6 »

truongphu wrote: -> thì set font trở lại cho form
Em mới học VB6, nhờ chỉ rõ hơn cách set font trở lại cho form.
hahuuhai
Thành viên năng nổ
Thành viên năng nổ
Posts: 61
Joined: Mon 13/04/2009 8:38 am
Location: Thạch Thành, Thanh Hóa

Re: Độ dài TextBox khớp đoạn text

Post by hahuuhai »

toihocVB6 wrote:cách set font trở lại cho form.

Code: Select all

(obj As Object)
obj.Font.Name,  obj.Font.Size,  obj.Font.Italic...
obj.FontName,   obj.FontSize,   obj.FontItalic...
toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Posts: 77
Joined: Tue 30/11/2010 1:12 am
Has thanked: 12 times

Re: Độ dài TextBox khớp đoạn text

Post by toihocVB6 »

cho hỏi tiếp: làm sao khi thay đổi loại font chữ, cỡ chữ, nghiêng, đậm, thường thì khung TextBox khớp đoạn text về chiều dài lẩn chiều cao? (em mới học VB6, cho em xin code ví dụ. Em cảm ơn!)
nguoimoiden
Thành viên chính thức
Thành viên chính thức
Posts: 49
Joined: Thu 31/12/2009 10:38 pm

Re: Độ dài & cao của TextBox và RichTextBox khớp đoạn text

Post by nguoimoiden »

1 - Đối với TextBox, đã làm được độ dài và độ cao của TextBox khớp với đoạn text.
2 - Với control RichTextBox, làm cho độ dài và độ cao của RichTextBox khớp với đoạn text, cũng làm được khi dùng đọan code sau đây (thêm 1 PictureBox):

Code: Select all

Picture1.Font = RichTextBox1.Font
Picture1.FontSize = RichTextBox1.Font.Size
RichTextBox1.Height = Picture1.TextHeight(RichTextBox1.Text)
RichTextBox1.Width = Picture1.TextWidth(RichTextBox1.Text)+250
...Nhưng với RichTextBox, trong 1 dòng text khi chọn vài ký tự trong nó để định dạng size lớn hoặc nhỏ khác với dòng text thì làm sao cho độ dài và độ cao của RichTextBox khớp với đoạn text?
Attachments
untitled.JPG
untitled.JPG (3.08 KiB) Viewed 5572 times
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Re: Độ dài & cao của TextBox và RichTextBox khớp đoạn text

Post by truongphu »

nguoimoiden wrote:..Nhưng với RichTextBox, trong 1 dòng text khi chọn vài ký tự trong nó để định dạng size lớn hoặc nhỏ khác với dòng text thì làm sao cho độ dài và độ cao của RichTextBox khớp với đoạn text?
Điều nầy chỉ cần suy nghĩ một tẹo, làm cẩn thận là xong!
lấy chiều cao ký tự cao nhất cho mốc height, tổng chiều dài các chuỗi làm mốc cho width
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Posts: 77
Joined: Tue 30/11/2010 1:12 am
Has thanked: 12 times

Re: Độ dài & cao của TextBox và RichTextBox khớp đoạn text

Post by toihocVB6 »

* Anh chị nào cho code hướng dẫn giúp em, đã có code làm khớp chiều cao đoạn text:

Me.Font = TextBox1.Font
Me.FontSize = TextBox1.Font.Size
TextBox1.Height = ((TextWidth(TextBox1.Text) / TextBox1.Width) + 1) * (TextHeight("A") + 10)

- nay em muốn viết tiếp theo câu dưới đây để làm khớp chiều dài đoạn text thì làm sao?:
TextBox1.Width = ...

(thông cảm, em mới học VB6 nên còn bở ngở lắm!).
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Re: Độ dài & cao của TextBox và RichTextBox khớp đoạn text

Post by truongphu »

toihocVB6 wrote:(thông cảm, em mới học VB6 nên còn bở ngở lắm!).
ừ thông cảm ;))
Quan trọng nhất khi bạn mới học: phải hiểu code viết như thế có ý gì, có hữu lý không
TextBox1.Height = ((TextWidth(TextBox1.Text) / TextBox1.Width) + 1) * (TextHeight("A") + 10)
Dịch đoạn code trên ra tiếng Việt có nghĩa:
chiều cao TextBox1 = (Chiều dài đoạn text của textbox1/ chiều dài textbox1) + 1 rồi nhân với (chiều cao chữ A + 10)

Đọc đoạn code của bạn tôi bối rối quá!

------
bạn chạy thử project đơn giản sau đây xem sao:
Attachments
textbox khít chuôi.rar
(1.78 KiB) Downloaded 334 times
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Posts: 77
Joined: Tue 30/11/2010 1:12 am
Has thanked: 12 times

Re: Độ dài & cao của TextBox và RichTextBox khớp đoạn text

Post by toihocVB6 »

Cảm ơn truongphu! nhưng em quên 1 điều quan trọng, em xin nói rõ hơn:
- cần làm khớp chiều dài đoạn text khi RichTextBox có nhiều dòng (trên 1 dòng thì em làm được rồi)
User avatar
truongphu
VIP
VIP
Posts: 4781
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 525 times

Re: Độ dài & cao của TextBox và RichTextBox khớp đoạn text

Post by truongphu »

toihocVB6 wrote:cần làm khớp chiều dài đoạn text khi RichTextBox có nhiều dòng
Đấy, chính là sự "bở ngở" của bạn!
Ta làm khít chiều dài của control với chiều dài text Khi và chỉ Khi control có 1 dòng (MultiLine=False)
Còn control có nhiều dòng thì: chiều dài control là cố định do thiết kế ban đầu, nếu đoạn text rất dài thì chúng tự động xuống dòng
Ghi chú của điều hành viên:
Đề tài nầy ngừng ngang đây
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Post Reply

Return to “Visual Basic 6 và Visual Basic Script (VB & VBS)”