• 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

Tại sao khi tôi thêm khoảng trắng vào chuỗi Label không đồng nhất chiều dài của chuổi ?

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

dong
Thành viên ưu tú
Thành viên ưu tú
Posts: 712
Joined: Thu 03/04/2008 7:46 am
Has thanked: 13 times
Been thanked: 2 times

Tại sao khi tôi thêm khoảng trắng vào chuỗi Label không đồng nhất chiều dài của chuổi ?

Postby dong » Thu 15/10/2020 10:33 am

Giả sử tôi có 4 Label.Text tương ứng với 4 chuổi : Lương cơ bản, Lương kinh doanh, Phụ cấp trách nhiệm, Phụ cấp thu hút. Khi chạy chương trình tôi có thể thay đổi chuổi "Phụ cấp trách nhiệm" bằng một chuổi khác "Phụ cấp thu hút" chẳng hạn. Tôi lấy chuổi lương cơ bản làm chuẩn cho các chuổi khác, từ chuổi lương cơ bản tìm vị trí ký tự 2 chấm ":" là vị trí 36 thông qua hàm Label1.Text.IndexOf(":"). Các chuổi khác được chèn vào khi chạy là chuổi "Phụ cấp trách nhiệm" và chuổi "Phụ cấp thu hút", để hiển thị đồng nhất 4 chuổi có dấu 2 chấm ":". Tôi chèn ký tự trắng vào chuổi để cho chiều dài chuổi tại ký tự 2 chấm bằng nhau là vị trí thứ 36 nhưng khi hiển thị các ký tự tại vị trí 36 là dấu 2 chấm không bằng nhau, tôi thấy nếu ký tự khác ký tự trắng ít thì khi chèn ký tự trắng vào chuổi sẽ gắn lại, tại sao vậy ? bạn xem file ảnh của tôi. để khắc phục tình trạng này tôi phải viết code như thế nào ? xem file ảnh đính kèm
http://www.mediafire.com/file/z1lywywib ... n.jpg/file



cuibaphp
Thành viên chính thức
Thành viên chính thức
Posts: 31
Joined: Tue 04/09/2012 3:04 pm
Been thanked: 15 times

Re: Tại sao khi tôi thêm khoảng trắng vào chuỗi Label không đồng nhất chiều dài của chuổi ?

Postby cuibaphp » Thu 15/10/2020 11:33 am

Do width của mỗi character là khác nhau nên width của toàn chuỗi có thể khác nhau mặc dù có cùng length character.
Vd: str1 = "hello ABC :" và str2 = "hello AIC :" thì vị trí dấu ":" của str2 sẽ ngắn hơn str1 do chữ I có chiều rộng nhỏ hơn chữ B.

Để dàn form thẳng hàng thì dùng theo kiến trúc table, winform có layout table, hoặc không muốn thì set width cho label đồng đều, autosize = false. Mình lâu không lập trình winform nên không nhớ nhiều lắm nhé.

dong
Thành viên ưu tú
Thành viên ưu tú
Posts: 712
Joined: Thu 03/04/2008 7:46 am
Has thanked: 13 times
Been thanked: 2 times

Re: Tại sao khi tôi thêm khoảng trắng vào chuỗi Label không đồng nhất chiều dài của chuổi ?

Postby dong » Fri 16/10/2020 9:03 am

Cám ơn bạn nhiều đã giải đáp thắc mắc


Return to “Visual Basic .NET và C# (VB.NET & C#)”

Who is online

Users browsing this forum: No registered users and 23 guests