用下面代码改变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是要恢复系统开始的设定,也就是达到我选一行改变一行的,别的行不改变目的,我想请问??????部分应该怎么写
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是要恢复系统开始的设定,也就是达到我选一行改变一行的,别的行不改变目的,我想请问??????部分应该怎么写
{
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);
}
但是如果系统默认的是5号字,可我设计的时候是4号字,那么在运行的时候不还是全部改变成5号字了么,
为了不全部改变,所以要加条件,也就是在循环中,如果不为选中的行,则字体为ListView .DefaultFont
-----------
姓名 // 第一行,设计成4号字体
-----------
刘 // 第二行,设计成5号字体(在listview的item 中设定)
-----------
李 //同第二行
-----------我的意思就是item.Font=System.Windows .Forms .ListView .DefaultFont ; 或
if(item.selected==false)
{
item.font=this.font;
}
都会在运行的时候把第二行和第三行的字体改变成4号,也就是listview的font,
按你的意思
你在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);
}
}
重写Font字体,这么做效果不好,因为总是在改变的时候listview中的数据都会闪一下,