热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

listView项的距离能否调整

在listVied中。项的距离离得太远了。。。我要让他们连在一起都没办法。请问有什么方法可以将listView的距离拉近。是里面的项拉近!
在listVied 中 。 项的 距离 离得太远了 。 。。   我要让他们连在一起都没办法。
    请问有什么方法可以将listView 的距离拉近 。
  是里面的项拉近 !

23 个解决方案

#1


ListView默认以项字体高度为行高,其次判断有无图标,如果图标高度大于字体高度,则以图标高度为准.
你可以做一个透明的图标,设置为每行项的图标,比如这个图标高度是20,那么行高就是20.
如果不希望因为放入一个图标而使得行看起来文字缩进的,可以做成宽1高20的图标.这个图标可以动态生成:
dim ItmIcon as new bitmap(1,20)
ImageList1.Images.Add(ItmIcon)

#2


引用 1 楼 dylike 的回复:
ListView默认以项字体高度为行高,其次判断有无图标,如果图标高度大于字体高度,则以图标高度为准.
你可以做一个透明的图标,设置为每行项的图标,比如这个图标高度是20,那么行高就是20.
如果不希望因为放入一个图标而使得行看起来文字缩进的,可以做成宽1高20的图标.这个图标可以动态生成:
dim ItmIcon as new bitmap(1,20)
ImageList1.Images……


  看不懂什么意思 。。
     能给点代码么  。。     加上注释。
  拜托了 。  急用 。在线等 。

#3


这是我做了后的效果 。 。   


  图片离得太远了 。 。  
  求高手帮忙解决  

#4


如果是大图标模式,则需要在windows下操作:
桌面空白处=>右键=>属性=>设置桌面图标间距.

#5


引用 4 楼 dylike 的回复:
如果是大图标模式,则需要在windows下操作:
桌面空白处=>右键=>属性=>设置桌面图标间距.



桌面图标间距  ??    。。   没见过 。。
    没有别的办法吗?

#6


哪个好心人帮我看 。 。  在线等啊 。 。

#7


我的建议是:使用Button或Picturebox等控件通过代码来布局,而不是依赖LV.这样会更自由些.

#8


你一行里面的两张图片是在同一个单元格里还是两个单元格里?

#9


引用 8 楼 ghost281536992 的回复:
你一行里面的两张图片是在同一个单元格里还是两个单元格里?

两个单元格 。。

#10


引用 8 楼 ghost281536992 的回复:
你一行里面的两张图片是在同一个单元格里还是两个单元格里?

 如何调单元格的大小 ??

#11


同问。学习

#12


有没高手教教啊 。 。。   就快上学了哎 。 。   快点帮我  。。  

#13


listview这个控件有个毛病,就是大小不能随意调,你要是想随意调,那就只能绑定一个imagelist,然后通过调整imagelist里面的image的size来调整项的大小。
listview有两个属性,一个是smallimagelist,一个是largeimagelist,在属性列表里能找到,随便绑定哪个都行。分别对应view属性的largeicon跟smallicon。绑定以后item的大小就是你设置的图片的大小。

#14


引用 13 楼 ghost281536992 的回复:
listview这个控件有个毛病,就是大小不能随意调,你要是想随意调,那就只能绑定一个imagelist,然后通过调整imagelist里面的image的size来调整项的大小。
listview有两个属性,一个是smallimagelist,一个是largeimagelist,在属性列表里能找到,随便绑定哪个都行。分别对应view属性的largeicon跟smallicon。绑定以后item的……

  这个我试过 。  但是效果还是一样 。  没有更好的办法吗?  我曾见过有人试着改过 。   但我不知道怎么用。
    给你看下代码  
/// 
        /// 控制ListView项之间的距离
        /// 

        /// 
        /// 
        /// 水平间距
        /// 垂直间距
        /// 
        [DllImport("User32.dll")]
        private static extern int SendMessage(int Handle, int wMsg, int wParam, int lParam);

        const int LVM_FIRST = 0x1000;
        const int LVM_SETICONSPACING = LVM_FIRST + 53;

        public static void SetListViewSpacing(ListView lst, int x, int y)
        {
            SendMessage(lst.Handle.ToInt32(), LVM_SETICONSPACING, 0, x * 65536 + y);
        }

#15


实在不行就protected override void OnDrawItem(DrawListViewItemEventArgs e)吧。
自己画item算了。

#16


引用 14 楼 md5cheng 的回复:
引用 13 楼 ghost281536992 的回复:
listview这个控件有个毛病,就是大小不能随意调,你要是想随意调,那就只能绑定一个imagelist,然后通过调整imagelist里面的image的size来调整项的大小。
listview有两个属性,一个是smallimagelist,一个是largeimagelist,在属性列表里能找到,随便绑定哪个都行。分别对应view属性的……

   这个有没有用呢?   
      有用的话,  要怎么用呢 。。  不是很懂

#17


引用 16 楼 md5cheng 的回复:
引用 14 楼 md5cheng 的回复:
引用 13 楼 ghost281536992 的回复:
listview这个控件有个毛病,就是大小不能随意调,你要是想随意调,那就只能绑定一个imagelist,然后通过调整imagelist里面的image的size来调整项的大小。
listview有两个属性,一个是smallimagelist,一个是largeimagelist,在属性列表里能……


不一定有用,这种方法好像只用于设置行高。你试下吧。
先往窗口里拖个imagelist控件,然后将listview的imagelist指向它。然后把你要的图片加到imagelist里。然后把listviewitem的imageindex(就是你想要选的图片在imagelist里的索引)设置下,但是subitem的图标好像是需要重绘的,我没有实际应用经历,但是跟你这个类似,当时是重写了,因为listview的第二列默认是没有图标的。
protected override void OnDrawItem(DrawListViewItemEventArgs e),用这个。
网上也有带图标的listview控件,别人自己做的,你下一个来改改也可以。

#18


http://www.codesoso.com/code/Image-ListView-SubItem.aspx
这是别人写的一个listview,要实现你那样的效果还要再自己小改一下。

#19


 我不会重绘 。 。   还没学到 。 。   能教我吗 。。  
    谢谢你帮了我这么多 。 。 

#20


这个。。。。。。教字从何谈起,大家一起讨论罢了,都是菜鸟,呵呵
只能是有了问题大家一起想办法解决,从头到尾教不太现实。
实际上listview绘制的时候就用到了Ondrawitem这个事件。只不过你现在为了实现自己想要的功能把这个函数加强了一下而已。
你找listview这个类的元数据。东西都在里面。
    public class ExListview : ListView
    {
        public void Exlistview()
        {
        }

        protected override void OnDrawItem(DrawListViewItemEventArgs e)
        {
            base.OnDrawItem(e);
            把重绘的代码写到这个里面

        }
    }

#21


引用 20 楼 ghost281536992 的回复:
这个。。。。。。教字从何谈起,大家一起讨论罢了,都是菜鸟,呵呵
只能是有了问题大家一起想办法解决,从头到尾教不太现实。
实际上listview绘制的时候就用到了Ondrawitem这个事件。只不过你现在为了实现自己想要的功能把这个函数加强了一下而已。
你找listview这个类的元数据。东西都在里面。
  public class ExListview : ListView
  {
 ……


谢谢你。。  我中午去学校解决了这事情了。。

这个可以用
// 
        /// 控制ListView项之间的距离
        /// 

        /// 
        /// 
        /// 水平间距
        /// 垂直间距
        /// 
        [DllImport("User32.dll")]
        private static extern int SendMessage(int Handle, int wMsg, int wParam, int lParam);

        const int LVM_FIRST = 0x1000;
        const int LVM_SETICONSPACING = LVM_FIRST + 53;

        public static void SetListViewSpacing(ListView lst, int x, int y)
        {
            SendMessage(lst.Handle.ToInt32(), LVM_SETICONSPACING, 0, x * 65536 + y);
        }
 

但要改下 

#22


楼主 ,请问怎么改改呢,现在我也要用这个知识点 谢谢了

#23


太棒了,终于解决问题了,楼主在21楼给的代码确实能用。拷贝后调用方法就行。

推荐阅读
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
author-avatar
手机用户2502939977
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有