Winform下DataGridView评分单元格的痛苦折磨

先上最终效果图:

小小的一个功能折磨了哥近半个小时。

首先是没有替换模板,新加一个列,然后妄想给这列的单元格赋值能达到效果,结果formattedValue和value都为空,好吧。我认了。

直接给列的CellTemplate赋值,

 

dataGridView1.Columns[2].CellTemplate = new DataGridViewTextBoxCellStar();

 

 

然后出现了下列问题:

是的,仔细一看,原本的数字还是存在的,只是上面几个有星星,把数字给遮住了,但是当有一个为0时,则会暴露出数字。

首先想到了擦除,所以:

 

graphics.FillRectangle(new SolidBrush(this.DataGridView.BackgroundColor), cellBounds);

 


结果很悲剧:

 

想来此this.DataGridView.BackgroundColor非彼DataGridView.BackgroundColor。

突然想到一个偷懒的办法,设置文本的颜色。好吧。

 

dataGridView1.Columns[2].DefaultCellStyle.ForeColor = dataGridView1.BackgroundColor;

 


结果很好,但一点给暴露了:

 

 

仔细对比这个图和第一、二个图,发现只有选择的时候,数字的颜色显示了出来。

最后我怒了。真想写事件,切换文本颜色。但是觉得那样做太2了。

结果,让我想到了最后的解决办法,也把我打击了一下。

 

base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, "", errorText, cellStyle, advancedBorderStyle, paintParts);

 


是的,不让他画文字……

 

我认为我很悲剧。

posted on   南琦  阅读(597)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
< 2012年6月 >
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1 2 3 4 5 6 7

统计

点击右上角即可分享
微信分享提示