Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ListView DrawColumnHeader不工作_C#_Winforms_Listview - Fatal编程技术网

C# ListView DrawColumnHeader不工作

C# ListView DrawColumnHeader不工作,c#,winforms,listview,C#,Winforms,Listview,我有以下方法为列表视图的列标题设置背景色和字体,但它不起作用。有人能帮我吗 private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) { using (StringFormat sf = new StringFormat()) { // Store the column text alignment, letting it default

我有以下方法为列表视图的列标题设置背景色和字体,但它不起作用。有人能帮我吗

private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
    using (StringFormat sf = new StringFormat())
    {
        // Store the column text alignment, letting it default
        // to Left if it has not been set to Center or Right.
        switch (e.Header.TextAlign)
        {
            case HorizontalAlignment.Center:
                sf.Alignment = StringAlignment.Center;
                break;
            case HorizontalAlignment.Right:
                sf.Alignment = StringAlignment.Far;
                break;
        }

        // Draw the standard header background.
        e.DrawBackground();

        // Draw the header text.
        using (Font headerFont = new Font("Helvetica", 25, FontStyle.Bold)) //Font size!!!!
        {
            e.Graphics.DrawString(e.Header.Text, headerFont, Brushes.Black, e.Bounds, sf);
        }
    }
    return;
}
不管我用不用这个方法。它保持不变。没有什么变化。
这是因为列表视图的属性吗?

您的代码看起来正常。如果它没有做任何事情,您忘记将
OwnerDraw
属性设置为
true

这也意味着您需要为另外两个绘制事件添加代码。默认操作将执行以下操作:

private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
    e.DrawDefault = true;
}


private void listView1_DrawSubItem(object sender, DrawListViewItemEventArgs e)
{
    e.DrawDefault = true;
}

别忘了去参加活动;-)

不工作是不够的!请解释/描述这个问题!!如果是Winforms,也要标记它!您是否已将
OwnerDraw=true???谢谢你,伙计。“OwnerDraw=true”修复了它。但这次,列表视图变为空。它必须包含我的列表视图项??Lol。确实如此。你需要加上另外两个事件,看看我的答案…@ AF—A,当一个答案帮助你解决问题,你接受它,你也可以考虑,虽然它不是强制性的,但它是合理的:是的。我会及时学会这类事情的。我是新来的:)