C#中加强ListView控件的功能
2012-09-06 16:36
155 查看
首先是实现ListView控件的自定义排序,订阅ListView控件的ColumnClick事件
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
if (this.listView1.Columns[e.Column].Tag == null)
this.listView1.Columns[e.Column].Tag = true;
bool tabK = (bool)this.listView1.Columns[e.Column].Tag;
if (tabK)
this.listView1.Columns[e.Column].Tag = false;
else
this.listView1.Columns[e.Column].Tag = true;
this.listView1.ListViewItemSorter = new ListViewSort(e.Column, this.listView1.Columns[e.Column].Tag);
//指定排序器并传送列索引与升序降序关键字
this.listView1.Sort();//对列表进行自定义排序
}
排序类的定义:
下面将实现ListView控件的最后一列的去除,即自动调整合适的大小
首先写一个调整ListView控件列宽的函数
/**////
///自动调整listView控件最后一列的列宽
///
private void 调整LV列宽()
{
listView1.ColumnWidthChanged -= new ColumnWidthChangedEventHandler(listView1_ColumnWidthChanged);
备注.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
listView1.ColumnWidthChanged += new ColumnWidthChangedEventHandler(listView1_ColumnWidthChanged);
} 上面的备注列是listview控件的最后一列的名称,而listview控件的实例名为listView1
然后订阅ListView控件的ColumnWidthChanged事件,即列宽改变时自动调整列宽
/**////
/// listview列宽改变事件函数
///
void listView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
{
调整LV列宽();
}
再订阅ListView控件的Size_Change事件,即窗口大小被改变时调整列宽
void listView1_SizeChanged(object sender, EventArgs e)
{
调整LV列宽();
} 最后在窗体的Shown事件中调整ListView控件的列宽,即第一次显示的时候马上调整列宽
private void 商品管理_Shown(object sender, EventArgs e)
{
调整LV列宽();
}
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
if (this.listView1.Columns[e.Column].Tag == null)
this.listView1.Columns[e.Column].Tag = true;
bool tabK = (bool)this.listView1.Columns[e.Column].Tag;
if (tabK)
this.listView1.Columns[e.Column].Tag = false;
else
this.listView1.Columns[e.Column].Tag = true;
this.listView1.ListViewItemSorter = new ListViewSort(e.Column, this.listView1.Columns[e.Column].Tag);
//指定排序器并传送列索引与升序降序关键字
this.listView1.Sort();//对列表进行自定义排序
}
排序类的定义:
/**//// ///自定义ListView控件排序函数 /// class ListViewSort : IComparer { private int col; private bool descK; public ListViewSort() { col = 0; } public ListViewSort(int column, object Desc) { descK = (bool)Desc; col = column; //当前列,0,1,2...,参数由ListView控件的ColumnClick事件传递 } public int Compare(object x, object y) { int tempInt = String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); if (descK) return -tempInt; else return tempInt; } }上面的ListView控件的自定义排列,即单击ListView控件的标题时进行排序
下面将实现ListView控件的最后一列的去除,即自动调整合适的大小
首先写一个调整ListView控件列宽的函数
/**////
///自动调整listView控件最后一列的列宽
///
private void 调整LV列宽()
{
listView1.ColumnWidthChanged -= new ColumnWidthChangedEventHandler(listView1_ColumnWidthChanged);
备注.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
listView1.ColumnWidthChanged += new ColumnWidthChangedEventHandler(listView1_ColumnWidthChanged);
} 上面的备注列是listview控件的最后一列的名称,而listview控件的实例名为listView1
然后订阅ListView控件的ColumnWidthChanged事件,即列宽改变时自动调整列宽
/**////
/// listview列宽改变事件函数
///
void listView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
{
调整LV列宽();
}
再订阅ListView控件的Size_Change事件,即窗口大小被改变时调整列宽
void listView1_SizeChanged(object sender, EventArgs e)
{
调整LV列宽();
} 最后在窗体的Shown事件中调整ListView控件的列宽,即第一次显示的时候马上调整列宽
private void 商品管理_Shown(object sender, EventArgs e)
{
调整LV列宽();
}
1/**//// 2/// listview列宽改变事件函数 3/// 4void listView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e) 5{ 6 调整LV列宽(); 7}
相关文章推荐
- C#中加强ListView控件的功能
- C#中加强ListView控件的功能
- C#中加强ListView控件的功能
- C#中加强ListView控件的功能
- C#中加强ListView控件的功能
- C#中加强ListView控件的功能
- C#中加强ListView控件的功能
- C#关于ListView控件连接数据库功能应用
- c#中listview控件实现排序功能
- C#汉字转拼音功能类加强版
- C#关于ListView控件在列表视图中拖动视图项功能应用
- Asp.net(C#)实现验证码功能
- 2011-03-08 走火入魔C#.NET通用权限管理系统组件改进功能部分
- c#TextBox输入框自动提示、自动完成、自动补全功能
- C#里执行Js,C#解析JS方法--附58同城自动登录功能
- C#学习笔记之ListView控件
- C# Wizard功能实现
- C++和C#的语法和功能区别
- 用c#连接SQL实现登陆界面功能
- C#使用系统的“显示桌面”功能(Shell.Application)