listview:
/// <summary>
/// 自动调整LISTVIEW第一列的宽度
/// </summary>
/// <param name="listView1">指定listview</param>
/// <param name="Colunms">自动适应的列</param>
public static void AutoListViewColumnWidth(ListView listView1, int Colunms)
{
Byte[] myByte = System.Text.Encoding.Default.GetBytes(listView1.Columns[Colunms].Text);
int count = myByte.Length;
int b = 0;
for (int i = 0; i < listView1.Items.Count; i++)
{
myByte = Encoding.Default.GetBytes(listView1.Items[i].SubItems[Colunms].Text);
int txtlen = myByte.Length;
if (txtlen > b)
{
b = txtlen;
}
}
if (b < count)
listView1.Columns[Colunms].Width = -2;//按头长度显示
else
listView1.Columns[Colunms].Width = -1;//按内容长度显示
}
dataGrid:
private static void AutoSizeCol(DataGrid dgData, int colIndex)
{
DataView dv = dgData.DataSource as DataView;
int rowNums = dv.Table.Rows.Count;
Byte[] myByte = System.Text.Encoding.Default.GetBytes(dgData.TableStyles[0].GridColumnStyles[colIndex].HeaderText);
int textCount = myByte.Length;
int tempCount = 0;
// MessageBox.Show(textCount.ToString());
for (int i = 0; i < rowNums; i++)
{
if (dgData[i, colIndex] != null)
{
myByte = System.Text.Encoding.Default.GetBytes(dgData[i, colIndex].ToString().Trim());
tempCount = myByte.Length;
if (tempCount > textCount)
{
textCount = tempCount;
}
}
// MessageBox.Show(i.ToString() + "行" + colIndex.ToString() + "列宽度为" + textCount.ToString());
}
dgData.TableStyles[0].GridColumnStyles[colIndex].Width = (textCount+2) * 6;
//MessageBox.Show(colIndex.ToString() + "列宽度为" + (textCount * 7).ToString());
}