ListView若干点
1,鼠标事件只要点击到listview控件就会触发,操作事件中的鼠标相关事件只有点击到具体的列表项时才回触发
2,有时需要根据鼠标操作的位置来获取列表项的信息,这时用listview.GetItemAt(x,y)很方便。感觉从指定点获取相关对象的技术挺强悍的,HtmlDocument也有个类似的方法GetElementFromPoint(p)。
3,有时需要判断一个选中的项所包围的矩形框是否有一些特定的对象,这时用listview.GetItemRect(index),treeview的更方便treeview.selectednode.bounds直接可以获取到。
4,点击listview的标题列实现排序,要为listview.listviewitemsorter赋值,其类型为IComparer,所以要单独写一个类实现IComparer接口即可。
(1)写类实现接口
public class MySorter : IComparer
{
private int mSortColumn;
private SortOrder mSortOrder;
public int SortColumn
{
get { return mSortColumn; }
set { mSortColumn = value >= 0 ? value : mSortColumn; }
}
public SortOrder Order
{
get { return mSortOrder; }
set { mSortOrder = value; }
}
public MySorter()
{
mSortColumn = 0;
mSortOrder = SortOrder.None;
}
public int Compare(object pX, object pY)
{
ListViewItem sItem1, sItem2;
sItem1 = (ListViewItem)pX;
sItem2 = (ListViewItem)pY;
switch (mSortOrder)
{
case SortOrder.Ascending:
return sItem1.SubItems[mSortColumn].Text.CompareTo(sItem2.SubItems[mSortColumn].Text);
case SortOrder.Descending:
return -sItem1.SubItems[mSortColumn].Text.CompareTo(sItem2.SubItems[mSortColumn].Text);
}
return 0;
}
}
(2)调用
private void listView_ColumnClick(object sender, ColumnClickEventArgs e)
{
if (e.Column == (listView.ListViewItemSorter as MySorter).SortColumn)
{
if ((listView.ListViewItemSorter as MySorter).Order == SortOrder.Ascending)
(listView.ListViewItemSorter as MySorter).Order = SortOrder.Descending;
else
(listView.ListViewItemSorter as MySorter).Order = SortOrder.Ascending;
}
else
{
(listView.ListViewItemSorter as MySorter).Order = SortOrder.Ascending;
(listView.ListViewItemSorter as MySorter).SortColumn = e.Column;
}
listView.Sort();
}
ListView若干点相关推荐
- Android ListView 点击item改变item的背景颜色(ListView实现光标移动)
一下demo 地址 实现的效果图如下 ListView 光标移动,实现很是简单,这里是指item背景的改变 使用 listSelector listSelector 用户指定当前选中item 的颜色 ...
- Android ListView 删除 item
实现效果 主要使用方法 是, remove 之后在刷新界面 adapter 里面的代码 public class MyAdapter extends BaseAdapter {private List ...
- ListView 添加头部 和尾部 布局 (addHeaderView 和 addFooterView)
ListView 添加头部 和尾部 布局 其实很简单 ,listview 暴露的有方法addHeaderView 和 addFooterView 从源码里面可以看到, addHeaderView 和 ...
- Android ListView item设置分割线以及分割线宽度
ListView item设置分割线的方法:setDivider ListView item设置分割线宽度的方法:setDividerHeight // 设置分割线 listView.setDivid ...
- Android ListView (多个adapter 说明)
最近维护项目,项目里面使用的都是ListView 这里也对ListView 回顾一下 以下 demo 地址 ListView 在Android 里面用来实现列表的, 在xml 中创建ListView ...
- 玩转android自定义控件二——自定义索引栏listview
带索引栏的listview,在android开发非常普遍,方便用户进行字母索引,就像微信通讯录这样: 今天,我们就从零到一实现这个具有索引栏的listview. 怎么实现这个控件了,我们应当梳理出一个 ...
- ListView style
步骤一:在使用的ListView的activiey里使用android:theme="@style/Theme的名字" 步骤二:创建Themes.xml 在Themes.xml里定 ...
- Android自定义ListView的Item无法响应OnItemClick的解决办法
转: 如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就 ...
- 【原创】ListView快速滚动至新添加一行(自动滚动)
在C#开发中我们经常要开发一些日志系统,尤其是基于ListView的日志显示系统. 但是当日志增多是你是否有一些困扰,就是它为什么不会自动滚动至最后一行. 以下是一小段代码,希望可以帮助你. publ ...
- Android使用ListView控件问题
Android使用ListView控件问题: The application has stopped unexpectedly, please try again. 开发环境:android 1.6 ...
最新文章
- html5 游戏制作软件,制作h5小游戏的免费软件有哪些?
- MIT自然语言处理第五讲:最大熵和对数线性模型
- 并发编程——进程——进程的同步与数据共享
- Bumblebee微服务网关之并发限制
- iOS项目开发实战——使用Xcode6设计自己定义控件与图形
- C# 绘制PDF图形——基本图形、自定义图形、色彩透明度
- 如何才能在jsp文件中使用el表达式
- 4.2 优化数据访问
- Windows Workflow HOL学习笔记(七):添加一个验证来检查Email参数
- wap2010计算机考点,2010年全国计算机二级Access上机考试考点总结
- 【知识图谱】Louvain、LPA等5类经典社区发现算法 Python 实战
- etc fstab 详解linux,/etc/fstab文件详解
- IT成长日记(一)——字体
- Sort exceeded memory limit of 104857600 bytes 解决方案
- Sentinel流量卫兵
- OLED有哪些优劣势?
- WIX插件安装包的生成(三) 批量导入文件
- 行为设计模式:中介者模式
- 在灰度图像上进行Mean Shift迭代搜索目标 ,一维加权直方图 + 巴氏系数 + Mean Shift迭代
- PBR以及在Disney和UE渲染模型中的使用