ListView 第一行标题栏的字体大小和行高怎样设置
1个回答
展开全部
是要设置ListView.View == View.Details时,设置ColumnHeader的字体大小和行高么?如果不是就不用往下看了:)
粗看了一下,发现字体是可以设置的,但是行高恐怕有点困难。
ListView lv = new ListView();
lv.OwnerDraw = true;
lv.DrawColumnHeader += new DrawListViewColumnHeaderEventHandler(lv_DrawColumnHeader);
...
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
// 绘制标准背景
e.DrawBackground();
// 绘制自定义文字
using (Font headerFont = new Font("Tahoma", 10, FontStyle.Bold))
{
e.Graphics.DrawString(e.Header.Text, headerFont,
Brushes.Black, e.Bounds, new StringFormat());
}
return;
}
这里e.Bounds是一个只读属性,表示绘制ColumnHeader时所能操作的矩形范围,这个是Windows产生NM_CUSTOMDRAW是就已经定了的,我对Windows消息机制了解不多,不知道是否有方法来改变这个Bounds的内容,如果能改就可以指定高了。
粗看了一下,发现字体是可以设置的,但是行高恐怕有点困难。
ListView lv = new ListView();
lv.OwnerDraw = true;
lv.DrawColumnHeader += new DrawListViewColumnHeaderEventHandler(lv_DrawColumnHeader);
...
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
// 绘制标准背景
e.DrawBackground();
// 绘制自定义文字
using (Font headerFont = new Font("Tahoma", 10, FontStyle.Bold))
{
e.Graphics.DrawString(e.Header.Text, headerFont,
Brushes.Black, e.Bounds, new StringFormat());
}
return;
}
这里e.Bounds是一个只读属性,表示绘制ColumnHeader时所能操作的矩形范围,这个是Windows产生NM_CUSTOMDRAW是就已经定了的,我对Windows消息机制了解不多,不知道是否有方法来改变这个Bounds的内容,如果能改就可以指定高了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询