String được immutable, họ không thể thay đổi. PadRight
trả về một thể hiện mới của chuỗi đệm, không thay đổi thể hiện của chuỗi được gọi. Những gì bạn muốn là thế này:
Trip_Name1 = Trip_Name1.PadRight(20,' ');
Có một cuộc thảo luận lớn trên this StackOverflow câu hỏi là tại sao dây là không thay đổi.
EDIT:
Không ai trong số này dường như làm việc. Tuy nhiên tôi có thể pad chuỗi với bất kỳ nhân vật khác.
Bạn có thực sự gán lại nó như ví dụ trên không? Nếu đúng như vậy - sau đó mà không cần chi tiết hơn tôi chỉ có thể nghĩ rằng những điều sau đây:
- Nếu bạn đang lưu trữ này trong một cơ sở dữ liệu và lấy nó, một số cơ sở dữ liệu với các thiết lập đúng chưa "Trim" cho bạn.
- Bạn có logic ở một nơi khác đang cắt tỉa các khoảng trắng. Điều này là phổ biến khi giao dịch với đầu vào của người dùng.
EDIT 2:
tôi cần phải có được cụ thể hơn
tôi sẽ có nhiều phán đoán dựa trên quy ước đặt tên của bạn mà bạn đang đối phó với HTML/ASP.NET. Trong hầu hết các trường hợp, trong HTML - white space is collapsed. Ví dụ:
<div><a>Hello World</a></div>
<div><a>Hello World</a></div>
Cả hai thẻ a
sẽ hiển thị giống nhau vì không gian trắng bị thu gọn. Nếu bạn đang thực sự làm việc với HTML - đó có thể là lý do của bạn và tại sao padding hoạt động cho tất cả các nhân vật khác. Nếu bạn thực hiện một nguồn xem của đánh dấu được hiển thị - nó có chứa các khoảng trắng bổ sung không?
Nếu bạn muốn giữ khoảng trắng, hãy thử áp dụng kiểu CSS trên phần tử của bạn được gọi là white-space
và đặt thành pre
. Ví dụ:
<a style="white-space:pre">hello world </a>
Điều đó sẽ làm cho khoảng trắng được giữ nguyên. Hãy ghi nhớ rằng việc sử dụng không gian màu trắng như thế này có nhược điểm. Trình duyệt không hiển thị chúng giống hệt nhau, v.v. Tôi sẽ không sử dụng điều này cho mục đích bố cục.Hãy xem xét sử dụng CSS và một cái gì đó như min-width
thay thế.
'Trip_Name1' trong thử nghiệm của bạn là gì? Giá trị trả về của những phương thức đó (nghĩa là gì * "dường như không hoạt động" * có nghĩa là)? Và bạn biết rằng các phương thức này sẽ không sửa đổi giá trị của 'Trip_Name1', đúng không? –
Bạn có thể cung cấp mẫu mã không? Nhân tiện, các chuỗi không thay đổi được và bạn phải gán lại giá trị kết quả sau khi đệm –
Tôi nên cụ thể hơn, đây là mã đầy đủ: lnk_showmatch_1.Text = u_trip.Trip_Name1.PadRight (20, ''); – Bruce