我有一个 DataGridView ,当用户点击它时,我想在列标题上绘制自定义字形(让我们假设一个三角形)。
我将 EnableHeadersVisualStyles 属性设置为 False 。
您是否有任何示例或建议如何达到预期效果?我是否需要继承DataGridView或DataGridViewColumn?
提前谢谢你, 马可
答案 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?