我的C#应用​​程序中有一个DataGridView。使用设计器,我在DGV本身上设置了AlternatingRowsDefaultCellStyle以及DefaultCellStyle属性。这两种样式的填充值均为0, 0, 5, 0。我尚未从DataGridView任务外接程序的Edit Columns菜单中为任何DGV列设置任何自定义样式。

DGV中有一列是图像列,我为每一行绘制一个小图。我想从此列的所有单元格中删除填充,因此没有填充应用于该单元格的填充,该填充在图形的末尾留有一些空白。

我尝试过的以下每件事都不会从该列中的任何单元格中删除填充,但是也不会引发任何异常。

// first attempt
// taken from http://social.msdn.microsoft.com/Forums/eu/winforms/thread/a9227253-8bb4-429a-a700-8a3a255afe4d
deviceGrid.Columns["GProduction"].DefaultCellStyle.Padding = new Padding(0);

// second attempt
DataGridViewCellStyle style = deviceGrid.Columns["Graph"].DefaultCellStyle; // also tried Clone()
style.Padding = new Padding(0);
deviceGrid.Columns["GProduction"].DefaultCellStyle = style;

// third attempt
DataGridViewColumn col = deviceGrid.Columns["Graph"];
DataGridViewImageCell icell = new DataGridViewImageCell();
icell.Style.Padding = new Padding(0);
col.CellTemplate = icell;

我怀疑也许DataGridView本身的DefaultCellStyle填充正在覆盖我试图为该列设置的默认单元格样式,但是如果是这种情况,我需要做些什么来防止这种情况?

解决方案:
遵循jmh_gr提供的link之后,我发现问题是DataGridView本身的DefaultCellStyle在单元格上继承了LAST,因此我不得不从DGV属性中删除填充,并将其应用于除我未添加的填充之外的所有列。不想填充。

最佳答案

遵循jmh_gr提供的link之后,我发现问题是DataGridView本身的DefaultCellStyle在单元格上是LAST继承的。

解决方案是从DGV属性中删除填充,然后将其应用于除我不想填充的列之外的所有列。

关于c# - 更改单个DataGridView列中所有单元格的填充,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9283234/

10-17 01:46