2012-01-26 21 views
5

Tôi muốn điều chỉnh tất cả các cột của DataGridView theo không gian cần thiết để hiển thị toàn bộ dữ liệu của nó. Nếu không gian yêu cầu nhỏ hơn không gian có sẵn tôi muốn lưới để lấp đầy không gian này vượt quá, nhưng nếu có sẵn là không gian là không đủ để hiển thị đúng tất cả các cột tôi muốn DataGridView tạo tự động một cuộn. Có cách nào làm dễ hơn không?Điều chỉnh các cột DataGridView để lấp đầy không gian trống nếu lưới nhỏ hơn và sử dụng cuộn trong trường hợp lưới lớn hơn khoảng trống có sẵn

Trả lời

5

Nhấp vào DataGridView và chọn "Chỉnh sửa cột ...", sau đó chuyển đến "Bố cục" và đặt "AutoSizeMode" thành "Fill".

Hy vọng đây là những gì bạn đang tìm kiếm.

Cheers

0

tính DataGridView -> "AutoSizeMode" thành "Điền" không lấp đầy tất cả các không gian có sẵn, tuy nhiên nếu một cột là đủ lớn để chiếm đa số không gian lưới, sau đó phần còn lại của kích thước cột sẽ co lại .

Có thể bạn có thể thử "AutoSizeMode" thành "AllCells". Điều này không chỉ lấp đầy toàn bộ lưới mà còn tạo đủ không gian để xem tất cả các cột (với thanh cuộn ngang)

1

Chuyển đến DataGridView Chọn thuộc tính "AutoSizeColumnsMode". Đặt "Điền".

2

Nếu bạn muốn giữ bảng của bạn (DataGridView) được định dạng như vậy mà tất cả các cột sẽ được tự động kích thước, nhưng một cột cụ thể lấp đầy khoảng trống còn lại, bạn có thể làm một cái gì đó như thế này:

//Store the number of columns in a variable 
int columnCount = dataGridView.Columns.Count; 

//If we want the last column to fill the remaining space 
int lastColumnIndex = columnCount - 1; 

//Loop through each column and set the DataGridViewAutoSizeColumnMode 
//In this case, if we will set the size of all columns automatically, but have 
//the last column fill any extra space available. 
foreach(DataGridViewColumn column in dataGridView.Columns) 
{ 
    if (column.Index == columnCount - lastColumnIndex) //Last column will fill extra space 
    { 
     column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
    } 
    else //Any other column will be sized based on the max content size 
    { 
     column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 
    } 
} 

//Turn the scrollbars on for the DataGridView if needed 
dataGridView.ScrollBars = ScrollBars.Both; 
+0

Trong khi điều này hoạt động cho kịch bản bạn trình bày trong phần mở đầu câu trả lời, nó không trả lời câu hỏi của OP, đó là cách tự động định kích thước các cột để hiển thị tất cả dữ liệu của chúng và sau đó tạo thanh cuộn (tôi nghĩ) nếu áp dụng – Taegost

+0

@Taegost Đặt chế độ tự động kích thước trên tất cả các cột thành AllCells sẽ làm cho tất cả các cột tự động thay đổi kích thước để phù hợp với dữ liệu trong các ô tương ứng của chúng. Làm cho cột cuối cùng lấp đầy không gian còn lại như OP mong muốn. Tôi đã chỉnh sửa câu trả lời ban đầu của tôi để thiết lập thuộc tính ScrollBars trên DataGridView. Đặt thuộc tính Scrollbars thành ScrollBars.Both sẽ buộc thanh cuộn hiển thị nếu bảng quá lớn để hiển thị. –

+0

Vâng, bạn nói đúng. SOrry, tôi đã có một rắm não khi tôi đăng bình luận đó :) – Taegost

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