• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Hỏi code xuống dòng trong TextBox

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

Điều hành viên: tungblt

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Năm 05/09/2013 10:50 pm

- Khi ta nhập văn bản vào hộp TextBox, nhập đến cuối dòng (hết chiều rộng của TextBox) con trỏ sẽ tự động xuống dòng ghi tiếp. VÀ khi đó nó vẫn tính là của 1 dòng (thuộc dòng trên mà ta nhìn thấy), chứ không phải là 1 dòng khác dù ta thấy nó đã xuống dòng theo chiều rộng của TextBox. TRỪ KHI TA NHẤN TỔ HỢP PHÍM SHIFT+ENTER, nó sẽ tính là 1 dòng khác.
Xin hỏi: làm sao khi con trỏ đến cuối dòng của TextBox (hết chiều rộng của TextBox) ta viết code cho tự động xuống dòng như khi nhấn tổ hợp phím SHIFT+ENTER ?
Cảm ơn!



Hình đại diện của người dùng
UFO
Thành viên tích cực
Thành viên tích cực
Bài viết: 133
Ngày tham gia: T.Bảy 08/06/2013 10:04 am
Has thanked: 19 time
Been thanked: 14 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi UFO » T.Sáu 06/09/2013 7:42 am

toihocVB6 đã viết:- Khi ta nhập văn bản vào hộp TextBox, nhập đến cuối dòng (hết chiều rộng của TextBox) con trỏ sẽ tự động xuống dòng ghi tiếp. VÀ khi đó nó vẫn tính là của 1 dòng (thuộc dòng trên mà ta nhìn thấy), chứ không phải là 1 dòng khác dù ta thấy nó đã xuống dòng theo chiều rộng của TextBox. TRỪ KHI TA NHẤN TỔ HỢP PHÍM SHIFT+ENTER, nó sẽ tính là 1 dòng khác.
Xin hỏi: làm sao khi con trỏ đến cuối dòng của TextBox (hết chiều rộng của TextBox) ta viết code cho tự động xuống dòng như khi nhấn tổ hợp phím SHIFT+ENTER ?
Cảm ơn!


Ở thuộc tính của textbox bạn chọn MultiLine = True :)

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Sáu 06/09/2013 12:39 pm

- Cảm ơn bạn...ĐĨA BAY, cái bạn nói là 1 TextBox bình thường! ở đây nó là 1 RichTextBox và nó không xuống dòng được khi nhấn Enter!
- Mình sử dụng KeyAscii = 13 nó không hoạt động!!
- Mong bạn (hay bạn nào đó) đọc kỹ bài viết trên của mình để hướng dẫn cho dễ!
Cảm ơn!

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Sáu 06/09/2013 11:05 pm

- Tôi không biết viết code ENTER tự động cho từng dòng văn bản trong TextBox!
Ví dụ: TextBox có 1 khối gồm 10 dòng văn bản đếm từ trên xuống (nhưng TextBox hiểu là chỉ có 1 dòng thôi, vì không có tác vụ phím Enter), tôi muốn đặt câu lệnh Enter cho mỗi dòng văn bản để được thành 10 dòng độc lập với nhau, ai biết chỉ giúp cho!
Cảm ơn!
Sửa lần cuối bởi toihocVB6 vào ngày CN 08/09/2013 7:29 pm với 2 lần sửa.

Hình đại diện của người dùng
UFO
Thành viên tích cực
Thành viên tích cực
Bài viết: 133
Ngày tham gia: T.Bảy 08/06/2013 10:04 am
Has thanked: 19 time
Been thanked: 14 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi UFO » T.Bảy 07/09/2013 9:37 am

toihocVB6 đã viết:ở đây nó là 1 RichTextBox và nó không xuống dòng được khi nhấn Enter!

Mình enter vẫn xuống dòng như bình thường mà :(
Tập tin đính kèm
xuong dong.rar
(1.62 KiB) Đã tải 451 lần

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Bảy 07/09/2013 1:31 pm

1/ OK bạn, tôi nhầm lẫn quá đi! Tôi không đang dùng 1 RichTextBox mà là 1 TextBox của Microsoft Forms 2.0 Object Library.
2/ Xin nhắc lại câu hỏi:

- "Tôi không biết viết code ENTER tự động cho từng dòng văn bản trong TextBox!
Ví dụ: TextBox có 1 khối gồm 10 hàng văn bản đếm từ trên xuống (nhưng TextBox hiểu là chỉ có 1 dòng thôi, vì không có tác vụ phím Enter), tôi muốn đặt câu lệnh Enter cho mỗi dòng văn bản để được thành 10 dòng độc lập với nhau, ai biết chỉ giúp cho! "

Cảm ơn!

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Ba 10/09/2013 9:50 am

Xuanha ơi giúp mình!
Cảm ơn!!

Hình đại diện của người dùng
xuanha
Guru
Guru
Bài viết: 1230
Ngày tham gia: T.Năm 19/08/2010 4:25 pm
Đến từ: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
Has thanked: 13 time
Been thanked: 380 time
Liên hệ:

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi xuanha » T.Ba 10/09/2013 12:47 pm

toihocVB6 đã viết:1/ OK bạn, tôi nhầm lẫn quá đi! Tôi không đang dùng 1 RichTextBox mà là 1 TextBox của Microsoft Forms 2.0 Object Library.
2/ Xin nhắc lại câu hỏi:

- "Tôi không biết viết code ENTER tự động cho từng dòng văn bản trong TextBox!
Ví dụ: TextBox có 1 khối gồm 10 hàng văn bản đếm từ trên xuống (nhưng TextBox hiểu là chỉ có 1 dòng thôi, vì không có tác vụ phím Enter), tôi muốn đặt câu lệnh Enter cho mỗi dòng văn bản để được thành 10 dòng độc lập với nhau, ai biết chỉ giúp cho! "

Cảm ơn!


Bạn hãy tham khảo cách làm sau, đây chỉ là một ví dụ đơn giản để bạn có thể phát triển thêm
  1. Private Sub Command1_Click()
  2. Dim x$: Dim i@: Dim y$
  3. For i = 1 To Len(Text1.Text)
  4. y = y & Mid(Text1.Text, i, 1)
  5. If TextWidth(y) >= Text1.Width - 200 Then
  6. x = x & y & vbNewLine
  7. y = ""
  8. End If
  9. Next
  10. Text1.Text = x
  11. End Sub
  12.  

toihocVB6 đã viết:Xuanha ơi giúp mình!
Cảm ơn!!

Không phải cái gì mình cũng có thể giúp được, còn rất nhiều cao thủ khác trên diễn đàn.
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Ba 10/09/2013 2:29 pm

xuanha đã viết:Không phải cái gì mình cũng có thể giúp được, còn rất nhiều cao thủ khác trên diễn đàn

* Cảm ơn đã nhắc nhở! :)
'-----------------
* xuanha, code của bạn có tác dụng như khi nhấn Enter xuống hàng rất ok, nhưng ý mình không phải chỉ có vậy!
- Ý mình là: khi người dùng nhập liệu văn bản đến cuối chiều rộng của TextBox thì ta dùng code tự động nhấn phím Enter để tách dòng xuống hàng. và như thế tiếp diễn đến nhiều hàng sau đó ...đến vô tận (Code của bạn "hồn nhiên" Enter xuống hàng cắt con chữ, làm mất ý nghĩa của từ ngữ). :D

Hình đại diện của người dùng
xuanha
Guru
Guru
Bài viết: 1230
Ngày tham gia: T.Năm 19/08/2010 4:25 pm
Đến từ: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
Has thanked: 13 time
Been thanked: 380 time
Liên hệ:

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi xuanha » T.Ba 10/09/2013 2:50 pm

Bạn phải tự biến đổi chứ, code trên là một ví dụ rất tốt; lập trình là phải tự nghiên cứu.
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Ba 10/09/2013 9:24 pm

xuanha đã viết:Bạn phải tự biến đổi chứ, code trên là một ví dụ rất tốt; lập trình là phải tự nghiên cứu.

- Có chứ xuanha?!! đến khi làm không được mới lên hỏi đó! Nhưng mình vừa tìm được giải pháp rồi, không hiểu có đúng cách làm không nữa:

If TextWidth(Y) >= TextBox1_UNICODE.Width -200 Then
sửa lại theo thiết kế hiện dùng:
If TextWidth(Y) >= TextBox1_UNICODE.Width + 8030 Then

Hình đại diện của người dùng
xuanha
Guru
Guru
Bài viết: 1230
Ngày tham gia: T.Năm 19/08/2010 4:25 pm
Đến từ: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
Has thanked: 13 time
Been thanked: 380 time
Liên hệ:

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi xuanha » T.Ba 10/09/2013 10:26 pm

Bạn hãy tham khảo cách làm với biến mảng dưới đây, nó khắc phục được hiện tượng xuống dòng làm mất từ như đoạn code trên. Vì mình làm trên điện thoại nên chưa thử có chính xác hay không.
  1. Private Sub Command1_Click()
  2. Dim x$: Dim i@: Dim y$: dim x1() as string
  3. x1=split(text1.text)
  4. For i = 0 to ubound(x1)
  5. y = y & x1(i)
  6. If (TextWidth(y) >= Text1.Width - 200
  7. ) or (textwidth(y & x(i+1)) >=text1.width -200) then
  8. x = x & y & vbNewLine
  9. y = ""
  10. End If
  11. Next
  12. Text1.Text = x
  13. End Sub
  14.  


Không phải cái gì mình cũng có thể giúp được, còn rất nhiều cao thủ khác trên diễn đàn.[/quote]
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Tư 11/09/2013 12:28 am

Vậy xuanha test lại đi, nó có lỗi rùi!

Hình đại diện của người dùng
xuanha
Guru
Guru
Bài viết: 1230
Ngày tham gia: T.Năm 19/08/2010 4:25 pm
Đến từ: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
Has thanked: 13 time
Been thanked: 380 time
Liên hệ:

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi xuanha » T.Tư 11/09/2013 2:06 pm

Bạn thư lại với đioanj code dưới đây:
  1. Private Sub Command1_Click()
  2. Dim x$: Dim i@: Dim y$: Dim x1() As String
  3. x1 = Split(Text1.Text)
  4. For i = 0 To UBound(x1)
  5. y = IIf(y = "", y & x1(i), y & Chr(32) & x1(i))
  6. If i < UBound(x1) Then
  7. If (TextWidth(y) >= Text1.Width - 200) Or (TextWidth(y & x1(i + 1)) >= Text1.Width - 200) Then
  8. x = IIf(x = "", x & y, x & vbNewLine & y)
  9. Else
  10. x = IIf(x = "", x & y, x & Chr(32) & y)
  11. y = ""
  12. End If
  13. End If
  14. Next
  15. Text1.Text = x
  16. End Sub
  17.  
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599

toihocVB6
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 77
Ngày tham gia: T.Ba 30/11/2010 1:12 am
Has thanked: 12 time

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi toihocVB6 » T.Năm 12/09/2013 5:27 pm

Hôm qua nhận được bài trả lời của xuanha, lập tức mò ....đến bây giờ cũng chưa ra được kết quả như yêu cầu công việc. Có lẽ mình hơi ngu một tí thì phải!! hehe....
* Code mới gửi của xuanha:
- mất từ ở cuối đoạn văn bản.
- không tự Enter xuống dòng được (không tạo thành nhiều dòng được).
(Ví dụ trong đoạn văn dưới đây nhìn vào TextBox thì ta thấy có 7 dòng (7 hàng), nhưng thực chất nó hiểu chỉ có duy nhất 1 dòng. Ý mình muốn dùng code để làm cho nó chia ra 7 dòng, giống như khi mình đặt trỏ chuột ở cuối mỗi hàng và nhấn phím Enter xuống từng dòng vậy xuanha!!!).

Cảm ơn xuanha!!!
(Lưu ý: mình dùng TextBox của Form 2.0)
Tập tin đính kèm
untitled.JPG
untitled.JPG (15.37 KiB) Đã xem 8692 lần

506509
Bài viết: 4
Ngày tham gia: CN 19/04/2015 10:01 pm

Re: Hỏi code xuống dòng trong TextBox

Gửi bàigửi bởi 506509 » T.Hai 29/05/2017 11:51 am

Các bạn làm như này nhé:

Dim Newline As String
Newline = System.Environment.NewLine

TextBox1.Text = "This is a test"
TextBox1.Text = TextBox1.Text & Newline & "This is line 2"


Quay về “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.11 khách