2009-10-13 36 views

Trả lời

60

Bạn sẽ có thể đạt được điều này bằng cách đặt WrapMode của số DefaultCellStyle trong số DataGridViewTextBoxColumn thành true.

+14

bạn cũng cần phải đặt 'dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;' xem [bài đăng này] (http://stackoverflow.com/questions/1706454/c-multiline-text-in-datagridview-control) – BornToCode

+0

Ghi nhớ rằng nếu bạn sử dụng các kiểu dáng ô tùy chỉnh trong bảng của bạn, bạn sẽ cần phải chỉ định WrapMode cho mỗi kiểu bạn muốn gói, vì Kiểu mới mặc định nó là false. – kjhf

3

Ngoài thiết WrapMode của DefaultCellStyle, bạn có thể làm như sau:

  1. Bạn cần phải bắt GridView của EditingControlShowing Event
  2. Cast Control tài sản trên EventArgs để loại bạn muốn (tức là textbox, checkbox hoặc nút)
  3. Sử dụng loại được đúc đó, thay đổi thuộc tính Multiline như sau:
private void MyGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 
{ 
    TextBox TB = (TextBox)e.Control; 
    TB.Multiline = true;    
} 
26

Tôi đã tìm thấy rằng có hai điều bạn cần làm, cả trong nhà thiết kế, để làm cho một ô văn bản hiển thị nhiều dòng. Như Tim S. Van Haren được đề cập, bạn cần đặt WrapMode của số DefaultCellStyle trong số DataGridViewTextBoxColumn thành true. Và mặc dù điều đó làm cho văn bản quấn, nó không làm cho hàng mở rộng để hiển thị bất cứ điều gì vượt ra ngoài dòng đầu tiên. Ngoài WrapMode, AutoSizeRowsMode của DataGridView phải được đặt thành giá trị DataGridViewAutoSizeRowsMode thích hợp. Giá trị như DataGridViewAutoSizeRowsMode.AllCells cho phép ô mở rộng theo chiều dọc và hiển thị toàn bộ văn bản được bao bọc.

+4

Để tham chiếu, 'AutoSizeRowsMode' là thuộc tính của' DataGridView' và cần được đặt thành một cái gì đó như 'DataGridViewAutoSizeRowsMode.AllCells' –

+0

Như @BenScott đã tuyên bố, [' DataGridView.AutoSizeRowsMode'] (http: // msdn. microsoft.com/en-us/library/system.windows.forms.datagridview.autosizerowsmode%28v=vs.110%29.aspx) không phải là một giá trị boolean và phải được gán giá trị liệt kê 'DataGridViewAutoSizeRowsMode' thích hợp. Tôi sẽ chỉnh sửa câu trả lời để phản ánh điều này. –

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