Có cách nào để cung cấp cho mỗi cột trong một DataGridView một chiều rộng phần trăm của tổng lưới không? Tôi hiện đang sử dụng chiều rộng cố định nhưng muốn cung cấp cho một cột một chiều rộng 15%, một số khác có chiều rộng 25%, v.v. sao cho 100% của bảng được lấp đầy và thay đổi kích thước bằng lưới.Chiều rộng cột DataGridView là phần trăm
Trả lời
Hãy thử sử dụng thuộc tính DataGridViewColumn.FillWeight. Về cơ bản, bạn chỉ định trọng số cho mỗi cột và các cột có kích thước lại theo các trọng số đó. Các arcnicle MSDN không phải là tuyệt vời. Xem bài viết dưới đây để giải thích rõ hơn -
Presenting Data with the DataGridView Control in .NET 2.0—Automatic Column Sizing
Có thể sử dụng công cụ chuyển đổi giá trị
Điều này trừ một tham số nhưng bạn có thể phân chia thông số đó theo thông số.
<local:WidthConverter x:Key="widthConverter"/>
<GridViewColumn Width="{Binding ElementName=lvCurDocFields, Path=ActualWidth, Converter={StaticResource widthConverter}, ConverterParameter=100}">
[ValueConversion(typeof(double), typeof(double))]
public class WidthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// value is the total width available
double otherWidth;
try
{
otherWidth = System.Convert.ToDouble(parameter);
}
catch
{
otherWidth = 100;
}
if (otherWidth < 0) otherWidth = 0;
double width = (double)value - otherWidth;
if (width < 0) width = 0;
return width; // columnsCount;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
chỉ tạo tệp da. và áp dụng thông qua cấu hình web
Vì đây là câu trả lời hợp lệ, vui lòng cung cấp thêm một số ngữ cảnh, ví dụ, liên kết hoặc một cái gì đó để biện minh cho câu trả lời của bạn. – ethrbunny
Cảm ơn bạn đã nhập mã mẫu. Tôi chắc chắn điều này sẽ được sử dụng bởi một ai đó mặc dù tôi tìm thấy câu trả lời khác dễ dàng hơn nhiều để thực hiện. Tôi đánh giá cao sự giúp đỡ của bạn mặc dù! –