gpt4 book ai didi

c# - 在 ListView 中更改列标题的字体样式和颜色

转载 作者:行者123 更新时间:2023-11-30 14:54:13 24 4
gpt4 key购买 nike

我搜索了它以更改我们使用的 ListView 的标题颜色:

private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Pink, e.Bounds);
e.DrawText();
}

我们使用相同的事件来更改 ListView 的标题样式:

private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
using (StringFormat sf = new StringFormat())
{
sf.Alignment = StringAlignment.Center;
e.DrawBackground();

using (Font headerFont =
new Font("Microsoft Sans Serif", 9, FontStyle.Bold)) //Font size!!!!
{
e.Graphics.DrawString(e.Header.Text, headerFont,
Brushes.Black, e.Bounds, sf);
}
}
}

现在我的问题是我想同时更改页眉颜色和页眉样式。所以我这样写:

private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Pink, e.Bounds);
e.DrawText();

using (StringFormat sf = new StringFormat())
{
sf.Alignment = StringAlignment.Center;
e.DrawBackground();

using (Font headerFont =
new Font("Microsoft Sans Serif", 9, FontStyle.Bold)) //Font size!!!!
{
e.Graphics.DrawString(e.Header.Text, headerFont,
Brushes.Black, e.Bounds, sf);
}
}
}

但是如果我执行这段代码,页眉会变成粗体,但页眉颜色不会改变。要同时更改它们(即标题颜色和标题样式),我缺少什么?我不明白。

最佳答案

试试这个,即跳过对 e.DrawText()e.DrawBackground() 的调用:

private void list_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
using (var sf = new StringFormat())
{
sf.Alignment = StringAlignment.Center;

using (var headerFont = new Font("Microsoft Sans Serif", 9, FontStyle.Bold))
{
e.Graphics.FillRectangle(Brushes.Pink, e.Bounds);
e.Graphics.DrawString(e.Header.Text, headerFont,
Brushes.Black, e.Bounds, sf);
}
}
}

关于c# - 在 ListView 中更改列标题的字体样式和颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27766153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com