用下面代码改变listview中选中行的字体
foreach(ListViewItem item in this.lVw .Items) 

???????????
}  
if( this.lVw.SelectedItems.Count>0) 
 {
this.lVw.SelectedItems[0].Font=new Font(FontFamily.Families[0], 14, FontStyle.Regular); 
 }foreach是要恢复系统开始的设定,也就是达到我选一行改变一行的,别的行不改变目的,我想请问??????部分应该怎么写

解决方案 »

  1.   

    如果没有foreach遍历,那么效果就是该变一行后,就会停留在改变的状态,如果继续选择行的话,都是成改变状态,我的意思就是改变一行后,如果选择其他行,其他行改变,别的行都恢复
      

  2.   

    foreach(ListViewItem item in this.lVw .Items)  
    {  
      if(item.selected==false)
      {
         item.font=this.font;
      }
    }   
    if( this.lVw.SelectedItems.Count>0)  
     { 
    this.lVw.SelectedItems[0].Font=new Font(FontFamily.Families[0], 14, FontStyle.Regular);  
     } 
      

  3.   

    这是恢复系统默认,我是这么写的:item.Font=System.Windows .Forms .ListView .DefaultFont ;
    但是如果系统默认的是5号字,可我设计的时候是4号字,那么在运行的时候不还是全部改变成5号字了么,
      

  4.   

    如果你的listview设计的是5号字,那么默认的也就是5号字,你要恢复默认,那么就只能是listview的font
    为了不全部改变,所以要加条件,也就是在循环中,如果不为选中的行,则字体为ListView .DefaultFont 
      

  5.   

    我明白你的意思,在listview中,比如
    -----------
    姓名        // 第一行,设计成4号字体
    -----------
    刘          // 第二行,设计成5号字体(在listview的item 中设定)
    -----------
    李          //同第二行
    -----------我的意思就是item.Font=System.Windows .Forms .ListView .DefaultFont ; 或
    if(item.selected==false) 
      { 
         item.font=this.font; 
      } 
    都会在运行的时候把第二行和第三行的字体改变成4号,也就是listview的font,
      

  6.   


    按你的意思
    你在foreach循环时,要恢复成 1行 4号字,2行以后都是5号字,且不是手动设置的,而是在生成数据时设定的,是不是?你的this.lVw.SelectedItems[0].Font=new Font(FontFamily.Families[0], 14, FontStyle.Regular);   已经限定了选中行的字体,那下面这样行么?if( this.lVw.SelectedItems.Count>0)   
    {  
      this.lVw.SelectedItems[0].Font=new Font(FontFamily.Families[0], 14, FontStyle.Regular);   
    }
    else
    {
      lVw.items[0].font=new font(FontFamily.Families[0], 14, FontStyle.Regular);
      for(int i=lVw.items.count;i>=1;i--)
      {
        lVw.items[i].font=new font(FontFamily.Families[0], 15, FontStyle.Regular);
      }
    }
      

  7.   

    哈哈 ,我也这么做过,但是这么做还需要new font(FontFamily.Families[0], 15, FontStyle.Regular);
    重写Font字体,这么做效果不好,因为总是在改变的时候listview中的数据都会闪一下,
      

  8.   

    呵呵!目的是先实现效果,其次方法!何况,你一定要把第1行弄成4号字,那也没办法!要不你试试判断选中的item的字体吧!