Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 3 trên tổng số 3 kết quả

Đề tà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 ?

  1. #1
    Ngày gia nhập
    04 2012
    Bài viết
    485

    Mặc định 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 ?

    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/z1lywywib1odqdl/ErrSpacevn.jpg/file
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    929

    Bạn không thể lấy vị trí của 1 ký tự trong chuỗi trên form bằng cách tính toán chỉ mục của ký tự, lý do là chiều rộng (tính theo pixel) của các ký tự khi hiển thị là khác nhau.
    Tôi thấy có 2 cách khắc phục :
    1. Thiết lập Font chữ có chiều rộng của mỗi ký tự trong tập ký tự là bằng nhau (Font Courier New chẳng hạn).
    2. Dùng hàm API GetCharWidth32 tính toán chiều rộng mỗi ký tự, cộng dồn chiều rộng cho tới vị trí mong muốn.

  3. #3
    Ngày gia nhập
    04 2012
    Bài viết
    485

    Lúc đầu mĩnh cũng nghĩ các ký tự là một ma trận điểm n hàng và m cột, dù chữ gì nó cũng chiếm đúng 1 ô có n hàng và m cột, do kích thước điểm n hàng và m cột không đồng điều của mỗi ký tự nên xảy ra hiện tượng này mặc dù chiều dài chuổi bằng nhau, theo các cách của bạn mình nghĩ:
    Cách 1 thì đơn giản nhưng văn bản không cho sử dụng fonts chữ khác ngoài Times New Roman
    Cách 2 này khó sử dụng vì phải thực hiện nhiều phép tính
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn