DataGridView标头上的自定义标志符号

时间:2010-02-16 09:46:14

标签: .net vb.net datagridview

我有一个 DataGridView ,当用户点击它时,我想在列标题上绘制自定义字形(让我们假设一个三角形)。

我将 EnableHeadersVisualStyles 属性设置为 False

您是否有任何示例或建议如何达到预期效果?我是否需要继承DataGridView或DataGridViewColumn?

提前谢谢你, 马可

2 个答案:

答案 0 :(得分:0)

你需要做一些事情首先将处理程序附加到事件GridView_CellPainting事件处理程序里面这样做

void GridView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
                e.PaintBackground( e.ClipBounds, true );
                StringFormat sf = new StringFormat();
                sf.Alignment = StringAlignment.Near;
                e.Graphics.DrawString( e.FormattedValue.ToString() this.ColumnHeadersDefaultCellStyle.Font, new SolidBrush( this.ColumnHeadersDefaultCellStyle.ForeColor ),e.CellBounds, sf );

                             //
                             //Place code to draw your custom gliph
                             //
                e.Handled = true;
            }
        }

行“sf.Alignment = StringAlignment.Near;”如果你需要,可以将文本设置为左边的alignemet,否则更改

答案 1 :(得分:0)

我发现这很有帮助。它完美地运作

  

如果您希望列标题完全居中,则需要   禁用排序。将列的SortMode属性设置为   “NonSortable”。这样可以防止为空间预留空间   每当列文本居中或右对齐时对字形进行排序。

来自:How can I center the heading in a column on a DataGridView?