在c#winform中,listview为SmallIcon模式,Alignment为Left,滚动条似乎只能显示水平滚动,给listview动态添加Item,item的Text长短差异很大,同一行中如果第一列字符串长度超出第一行第一列的长度,就会和第二列重叠,请问各位大虾,有没有什么好的办法

解决方案 »

  1.   

    不可能只能水平滚动,
    item的Text长度差别很大时,建议让ListView显示提示,然后把Item.Text放到Item.SubItems里面;
      

  2.   

    http://bbs.zdnet.com.cn/thread-1004146-1-1.html
      

  3.   

    这很正常
    windows explorer不也是这样吗
      

  4.   

    就像Windows中打开一个文件夹选用“列表”方式查看一样,但是在我的Listview中第一列中字符串长的就会盖住本行第二列的内容
      

  5.   

     ListView1.Items.Add("1111")
            ListView1.LabelWrap = True
      

  6.   

    已经将LabelWrap属性设置为True了
      

  7.   

    SmallIcon下面,使用LabelWrap应该是可以解决问题的啊
      

  8.   

    现在使用的是SmallIcon模式,如果换List模式,Item的Text长度超出控件宽度就看不见了,而且也不出现水平滚动条,只有垂直滚动条
      

  9.   

    string str = d.Name;
    listView1.Items.Add(new ListViewItem(str));
    listView1.LabelWrap = true;
    的确是换行了,但是当Item数量超出控件范围后,就会出现水平滚动条,显示出第二列、第三列,现在的问题是第一列的长字符串会覆盖在第二列上,我现在不想让控件水平滚动,当ITEM数量超出控件显示范围后出现垂直滚动
      

  10.   

    ListView1.LabelWrap = True即可
      

  11.   

    列宽的话应该是设置TileSize,我用Tile的格式表示长了的话会自动缩进阿
      

  12.   

    已经将LabelWrap属性设置为True了 SmallIcon下面,使用LabelWrap应该是可以解决问题的啊 
     
    string str = d.Name; 
    listView1.Items.Add(new ListViewItem(str)); 
    listView1.LabelWrap = true; 
    的确是换行了,但是当Item数量超出控件范围后,就会出现水平滚动条,显示出第二列、第三列,现在的问题是第一列的长字符串会覆盖在第二列上,我现在…
      

  13.   

    我想最好能够一行就显示一列,ITEM数量超过控件显示范围就出现垂直滚动条,如果ITEM的TEXT长度过长就出现水平滚动条让用户可以看到全部的文本信息。
      

  14.   

    string str = d.Name;  
    listView1.Items.Add(new ListViewItem(str));  
    listView1.LabelWrap = true;
      

  15.   

    try this : 赋予一个不存在的imageindex
      

  16.   

    模仿了下你所说的各种情况,发现在Alignment为Left是正常的,只有档Alignment为Top或者Default的时候,才会出现你所说的情况,可见你的问题是Alignment设置错误,或者什么地方被偷偷修改了Alignment属性。