2013-03-20 27 views
6

Tôi có một ListView với một số ListViewItems (chỉ văn bản).Văn bản ListViewItem bị cắt bớt sau khi chọn - Khung nhỏ gọn

listView1 = new ListView 
{ 
    View = System.Windows.Forms.View.Details, 
    HeaderStyle = ColumnHeaderStyle.None 
}; 


listView1.Columns.Add(String.Empty, -2, HorizontalAlignment.Left); 

Những hình ảnh sau đây là một ví dụ:

enter image description here

Vấn đề là khi tôi chọn một trong các mục văn bản là cắt ngắn, như trong hình dưới đây:

enter image description here

Tại sao? Làm thế nào tôi có thể giải quyết vấn đề này?

+0

Điều này có thể do chiều rộng của cột được đặt thành -2 không? Bạn có lý do cụ thể để làm điều đó không? –

+0

Có thể tạo sự khác biệt để đặt tiêu đề 'ColumnHeader; thuộc tính' 'header.Width' thành một thứ khác, có thể ném nó vào' SelectionChanged {} (header.Width = listView.SelectedItem (0) .Length; ' – plast1K

+0

@MartinParkin -2 vì tôi muốn cột đó chiếm toàn bộ không gian sẵn có (không có đường thẳng đứng) – Nick

Trả lời

1

Vấn đề là văn bản của ListViewItem của bạn kết thúc bằng dấu cách trống.Bạn phải TrimEnd chuỗi và bạn có giải pháp của bạn.

0

Nó có thể tạo sự khác biệt để thiết lập:

ColumnHeader header; 

đó, header.Width tài sản để cái gì khác, có thể ném nó trong

SelectionChanged{}( 
    header.Width = listView.SelectedItem(0).Length; 
) 

Cho nó một shot. Tôi chỉ nghĩ rằng chiều rộng tiêu đề/cột đang chơi thủ đoạn với cách nó mặc định, hoặc có khả năng được thiết lập bởi bạn với -2

Liên kết này có thể giúp với ColumnHeaders: MSDN ColumnHeaders


EDIT:

Vì vậy, tôi đã xem xét một số nội dung của CompactFramework.

This Link dường như có liên quan đến cùng một vấn đề.

Hãy thử thiết lập tài sản ColumnWidth của bạn để -1

listView1.Columns.Add(String.Empty, -1, HorizontalAlignment.Left); 

Điều đó sẽ đặt nó là giá trị lớn nhất trong cột. Tôi thấy -2 tùy chọn sẽ hoạt động, nhưng hãy thử -1, chỉ để xem nó có tạo sự khác biệt hay không.

đúp Edit:

ý kiến ​​của chúng tôi đã được chuyển thành một Chat/Discussion, mặc dù chúng tôi đã không thể tìm ra những gì đang gây ra này. Nếu bất cứ ai có đề nghị hoặc biết một sửa chữa, xin vui lòng thông báo cho chúng tôi!

+0

Không có tính năng ColumnHeader hoặc Length trong Compact Framework ... – Nick

+0

Oh, noooo! Hrm, thật đáng tiếc, tôi sẽ thấy nếu tôi có thể tìm thấy bất cứ điều gì khác, nên đã nhận ra nó là dành cho Compact. – plast1K

+0

Tôi đã chỉnh sửa – plast1K

0

Sử dụng cột này có kích thước lý thay vì:

listView1.Columns[0].Width = listView1.Width; 
+0

Hãy cho chúng tôi biết nếu công trình này hoạt động! Và nếu bạn có bất kỳ ý tưởng tại sao điều này sửa chữa nó:] – plast1K

+0

Tôi không làm việc. Tôi không biết tại sao nhưng listView1.Columns của tôi [0] .Width là 460 trong sự kiện SelectionChanged (thay vì -2). ListView1.Width của tôi là 464, vì vậy nếu tôi thêm mã này vào sự kiện tôi có thể thấy thanh cuộn ngang, nhưng văn bản vẫn bị cắt ngắn. – Nick

0

Bạn sẽ có thể thay đổi bằng tay độ rộng của cột. Vào chế độ thiết kế và thay đổi nó theo cách thủ công. Chỉ cần kéo nó

+0

Vấn đề không phải là chiều rộng cột (luôn luôn giống nhau). – Nick

0

Bạn có thể kiểm tra kiểu mục đã chọn không. . .
Mục được chọn Textwrapping = "Wrap" hoặc Tăng chiều rộng cột mục đã chọn. Tôi nghĩ rằng chỉ có vấn đề với hai điều này.

Các vấn đề liên quan