listView.GetItemAt()

listView组件中,没有选中任何一个item,双击某一个item,对该item执行某些事情,可以通过标题的方法来获取item的名称,然后执行预想的操作。。。


msdn对该方法的定义为:

public ListViewItem GetItemAt(int x, int y)

返回值类型:System.Windows.Forms.ListViewItem

ListViewItem,表示位于指定位置的项。



有备注:

GetItemAt 方法使您可以确定哪个项位于 ListView 控件的工作区域中的特定位置。当用户单击或右击子项(当 View 属性设置为 View.Details 时),并且您要在用户单击鼠标时根据鼠标坐标来确定是哪个项拥有被单击的子项时,可以使用该方法。


若要使用拖放操作调整 ListView 中的项的位置,您可能需要使用 ListViewInsertionMark. NearestIndex 方法,而不是 GetItemAt 方法。ListViewInsertionMark. NearestIndex 方法查找位置最近的项,而无论鼠标指针的位置如何。另一方面,如果指定位置上不存在任何项,GetItemAt 方法将返回 null Nothing nullptr null 引用(在 Visual Basic 中为 Nothing ) 。


更多扫盲知识到msdn上自己找找吧,我电脑里安装了msdn。。。




我用listview显示文件夹,鼠标双击时要打开该文件夹,在论坛上看到有人发帖问这个实现办法,且有高人提供了解决,借鉴了


private void listView_MouseDoubleClick(object sender, MouseEventArgs e)
{   

      ListViewItem item = listView.GetItemAt(e.X, e.Y);   //获取鼠标双击事件的坐标位置,然后获取被双击的item

      if(item == null ) return ;

      string str = item.Text.ToString();

      可以测试下str:messbox.show(str);
      然后我根据文件夹的路径,打开它的子文件夹
}



网上有不少资源管理器的版本,好像都没实现这个双击打开文件夹的功能吧(我找了几个,都没看到),不过通过这个函数,我实现了。。。其实也
不难,windows api太那个了,虽然很方便,可是也隐藏了太多细节,新手上路,也只能是慢慢来吧。先熟悉windows api和c#,windows核心
的事,不是一朝一夕可以达到的


其实个人感觉c#没有delphi那么有爱……缅怀下delphi




PS:今天元宵,大家元宵快乐,阿宝也生日快乐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值