2010-07-08 36 views
17

Tôi có một textbox, và tôi đang cố gắng để in ra nó với các dòng mã sau đây:C# - Textbox Newline vấn đề

logfiletextbox.Text = logfiletextbox.Text + "\n\n\n\n\n" + o + " copied to " + folderlabel2.Text; 

đâu folderlabel 2 rõ ràng là một textbox. Điều đầu tiên tôi đưa vào là cùng một hộp văn bản, do đó không có văn bản nào bị xóa. Các dòng mới thừa đã chứng minh được vấn đề của tôi, bởi vì không có dòng mới nào trong hộp văn bản (có, được đặt thành nhiều dòng). "O" là loại FileInfo trong một mảng FileInfo.

Tại sao các dòng mới này không hiển thị trong hộp văn bản?

+1

Bạn cần sử dụng các cặp CRLF khi chèn vào hộp văn bản \ r \ n. – Bill

Trả lời

37

Sử dụng "\ r \ n" thay vì "\ n". Các hộp văn bản Windows cần CRLF làm các công cụ tạo dòng, không chỉ LF.

Thường thì bạn có thể sử dụng Environment.NewLine thay - nhưng tôi không biết những gì Mono textbox làm về làm việc với "\ n" (đó là những gì Environment.NewLine sẽ được trên một hộp Linux). Nếu nó bắt đầu đặt thêm công cụ vào cuối nếu bạn sử dụng "\ r \ n" thì điều đó sẽ phá vỡ nhiều ứng dụng hiện có - nhưng nếu nó yêu cầu "\ r \ n" sẽ phá vỡ các ứng dụng sử dụng Environment.NewLine.

Environment.NewLine có nghĩa là là dòng mặc định mới cho toàn bộ nền tảng bạn đang chạy - nhưng nếu bạn đang sử dụng bộ công cụ tiện ích, bạn có thể làm một việc gì khác? Thành thật mà nói đó là một chút lộn xộn. Nó sẽ là tốt đẹp nếu có một tài sản riêng biệt TextBox.NewLine mà triển khai khác nhau có thể xử lý một cách thích hợp.

+6

Hoặc thậm chí tốt hơn, sử dụng 'Environment.NewLine'. – Bobby

+0

@Bobby: Tôi không chắc chắn * là * tốt hơn - xem chỉnh sửa của tôi. –

+1

Thuộc tính NewLine cụ thể của TextBox sẽ đẹp. Tôi tự hỏi nếu nó sẽ có ý nghĩa để cho phép các ứng dụng hình thức để thiết lập tài sản đó với một giá trị được chỉ định. I E.nếu bạn đang sử dụng TextBox để hiển thị văn bản đọc/ghi vào cơ sở dữ liệu, dịch vụ web hoặc bất kỳ thứ gì mà quy ước mới không thực sự gắn với nền tảng hiện tại của bạn, thì có thể có ý nghĩa để cho phép nhà phát triển đặt chuỗi dòng mới để khớp với văn bản nguồn/đích. –

3

Tôi tin textbox muốn một Environment.NewLine (mà phải là "\ r \ n")

Lưu ý rằng nó phải trở về vận chuyển (\ r) tiếp theo là dòng mới (\ n). Nếu bạn đảo ngược thứ tự, nó sẽ không hoạt động.

2

Điều khiển Hộp văn bản mong đợi Trả lại hàng trước khi Nguồn cấp dữ liệu của bạn (0x0D 0x0A). Sử dụng "\r\n" hoặc System.Environment.Newline.

+1

Wow ... tất cả mọi người trên cái này. – mattmc3

2

trong stead của việc sử dụng \ n chúng ta có thể sử dụng

Environment.NewLine

tôi hy vọng nó sẽ giúp

0

Đây là cách tôi tạo append và dòng sản phẩm mới để trưng bày txtitems.Text = txtitems.Text + Environment.NewLine + dr [0] .ToString() + "" + dr [1] .ToString();

0

Bất cứ ai đang sử dụng VB.net, được trên Lookout cho vbCr

Dưới đây là một ví dụ:

trở lại "Tên tôi là" & vbCr & "John" & vbCr & "Doe "