如果在一个程序中多个界面用到Listview,则可以把初始化的方法写到一个公共类里, 方便调用。
public class CGlobal
{
/// <summary>
/// 初始化listview
/// </summary>
/// <param name="List"></param>
/// <param name="Titles">列标题</param>
/// <param name="Width">列宽</param>
/// <param name="count">列数</param>
/// <param name="IsGridLine">是否有网线</param>
/// <param name="fullrowsel">是否整行选中</param>
/// <param name="mulisel">是否允许选中多行</param>
public static void InitListView(ListView lstInit, string[] Titles, int[] Width, int count, bool IsGridLine = false, bool fullrowsel = true, bool mulisel = false)
{
if (null == lstInit)
{ return; }
lstInit.Clear();
lstInit.View = View.Details;
lstInit.GridLines = IsGridLine;
lstInit.FullRowSelect = fullrowsel;
lstInit.MultiSelect = mulisel;
lstInit.HeaderStyle = ColumnHeaderStyle.Clickable;
int Count = count;
for (int n = 0; n < Count; n++)
{
if (Titles.Count() > n && Width.Count() > n)
{
lstInit.Columns.Add(Titles[n], Width[n], HorizontalAlignment.Left);
}
}
// 如果列标题的总数大于要初始化的个数,则将剩下的宽度设为0
if (Titles.Count() > count)
{
for (int n = Count; n < Titles.Count(); n++)
{
lstInit.Columns.Add(Titles[n], 0, HorizontalAlignment.Left);
}
}
lstInit.Visible = true;
}
}
调用:
public static string[] arrTestTitles = { "Column0", "Column1" };
public static int[] arrTestWidth = { 80, 80 };
/// <summary>
/// 初始化listview
/// </summary>
private void IniLvw()
{
CGlobal.InitListView(lvwOprWater, CGlobal.arrTestTitles, CGlobal.arrTestWidth, CGlobal.arrTestTitles.Length, true);
}