动态生成图片列 设置好了 ImageLayout = DataGridViewImageCellLayout.Stretch 自动适应
但是在加载数据图片后 图片还是平铺显示
请问要如何才能 真正的自动适应
生成列代码:
/// <summary>
/// 返回一个定义了DataGridViewColumn的名字和数据绑定字段的数组
/// 用于DataGridView的列显示
/// </summary>
/// <param name="columnNameArray">列名字的数组</param>
/// <param name="specialColumnIndex">需要特殊设置的列宽的列的索引和宽度</param>
/// <returns>定义好的DataGridViewColumn对象数组</returns>
public static DataGridViewColumn[] SetDgViewColumnProperty(string[] columnNameArray,
System.Collections.Hashtable specialColumnIndex,
int i_img)
{ //然后获得数组的边界,定义返回的DataGridViewColumn的数组范围 int arrCount = columnNameArray.Length;
//定义返回的DataGridViewColumn
var resultColumn = new DataGridViewColumn[arrCount];
//设置一个是否需要进行特殊列宽度设置的标志 bool SpecialWidthFlag = specialColumnIndex != null;
//bool SpecialWidthFlag = specialColumnIndex.Equals(null)?false:true;
//循环数组
for (int i = 0; i < columnNameArray.Length; i++)
{
if (i_img == i)
{
var tmpColumn_IMG = new DataGridViewImageColumn
{
DataPropertyName = columnNameArray[i].Trim().ToUpper(),
Name = columnNameArray[i].Trim().ToUpper(),
ImageLayout = DataGridViewImageCellLayout.Stretch,
};
//设置列对应的数据绑定的名字 resultColumn[i] = tmpColumn_IMG;
}
else
{
var tmpColumn = new DataGridViewTextBoxColumn
{
DataPropertyName = columnNameArray[i].Trim().ToUpper(),
Name = columnNameArray[i].Trim().ToUpper()
};
//设置列对应的数据绑定的名字 //设置列的名字
if (SpecialWidthFlag)//如果需要特殊设置
{
if (specialColumnIndex.ContainsKey(i))//如果是特殊需要设置的列,设置为自定义的宽度
{
tmpColumn.Width = (int)specialColumnIndex[i];
if ((int)specialColumnIndex[i] == 0)//如果此列的宽度为0,说明不显示
tmpColumn.Visible = false;
}
}
else
tmpColumn.Width = 80;//其余的采用普通宽度
resultColumn[i] = tmpColumn;
}
}
//返回结果
return resultColumn;
}
但是在加载数据图片后 图片还是平铺显示
请问要如何才能 真正的自动适应
生成列代码:
/// <summary>
/// 返回一个定义了DataGridViewColumn的名字和数据绑定字段的数组
/// 用于DataGridView的列显示
/// </summary>
/// <param name="columnNameArray">列名字的数组</param>
/// <param name="specialColumnIndex">需要特殊设置的列宽的列的索引和宽度</param>
/// <returns>定义好的DataGridViewColumn对象数组</returns>
public static DataGridViewColumn[] SetDgViewColumnProperty(string[] columnNameArray,
System.Collections.Hashtable specialColumnIndex,
int i_img)
{ //然后获得数组的边界,定义返回的DataGridViewColumn的数组范围 int arrCount = columnNameArray.Length;
//定义返回的DataGridViewColumn
var resultColumn = new DataGridViewColumn[arrCount];
//设置一个是否需要进行特殊列宽度设置的标志 bool SpecialWidthFlag = specialColumnIndex != null;
//bool SpecialWidthFlag = specialColumnIndex.Equals(null)?false:true;
//循环数组
for (int i = 0; i < columnNameArray.Length; i++)
{
if (i_img == i)
{
var tmpColumn_IMG = new DataGridViewImageColumn
{
DataPropertyName = columnNameArray[i].Trim().ToUpper(),
Name = columnNameArray[i].Trim().ToUpper(),
ImageLayout = DataGridViewImageCellLayout.Stretch,
};
//设置列对应的数据绑定的名字 resultColumn[i] = tmpColumn_IMG;
}
else
{
var tmpColumn = new DataGridViewTextBoxColumn
{
DataPropertyName = columnNameArray[i].Trim().ToUpper(),
Name = columnNameArray[i].Trim().ToUpper()
};
//设置列对应的数据绑定的名字 //设置列的名字
if (SpecialWidthFlag)//如果需要特殊设置
{
if (specialColumnIndex.ContainsKey(i))//如果是特殊需要设置的列,设置为自定义的宽度
{
tmpColumn.Width = (int)specialColumnIndex[i];
if ((int)specialColumnIndex[i] == 0)//如果此列的宽度为0,说明不显示
tmpColumn.Visible = false;
}
}
else
tmpColumn.Width = 80;//其余的采用普通宽度
resultColumn[i] = tmpColumn;
}
}
//返回结果
return resultColumn;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货