博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习之路二十一:设置DataGridView中的按钮为Disable
阅读量:6039 次
发布时间:2019-06-20

本文共 3785 字,大约阅读时间需要 12 分钟。

这个问题折腾很久了,网上找了半天了,结果问一个同事,同事给了一个地址让我看看,最后根据上面的介绍做好了,再次记录一下,o(∩_∩)o 哈哈

地址如下:

代码如下:

1     public class DataGridViewDisableButtonColumn : DataGridViewButtonColumn 2     { 3         public DataGridViewDisableButtonColumn() 4         { 5             this.CellTemplate = new DataGridViewDisableButtonCell(); 6         } 7     } 8  9 10     public class DataGridViewDisableButtonCell : DataGridViewButtonCell11     {12         private bool enabledValue;13 14         public bool Enabled15         {16             get17             {18                 return enabledValue;19             }20             set21             {22                 enabledValue = value;23             }24         }25 26         public string CommadText { get; set; }27 28         // Override the Clone method so that the Enabled property is copied. 29         public override object Clone()30         {31             DataGridViewDisableButtonCell cell = (DataGridViewDisableButtonCell)base.Clone();32             cell.Enabled = this.Enabled;33             return cell;34         }35 36         // By default, enable the button cell. 37         public DataGridViewDisableButtonCell()38         {39             this.enabledValue = true;40         }41 42         protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex,43                                                 DataGridViewElementStates elementState, object value,44                                                 object formattedValue, string errorText, DataGridViewCellStyle cellStyle,45                                                 DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)46         {47            48             if (!this.enabledValue)49             {50                 // Draw the cell background, if specified. 51                 if ((paintParts & DataGridViewPaintParts.Background) == DataGridViewPaintParts.Background)52                 {53                     SolidBrush cellBackground = new SolidBrush(cellStyle.BackColor);54                     graphics.FillRectangle(cellBackground, cellBounds);55                     cellBackground.Dispose();56                 }57 58                 // Draw the cell borders, if specified. 59                 if ((paintParts & DataGridViewPaintParts.Border) == DataGridViewPaintParts.Border)60                 {61                     PaintBorder(graphics, clipBounds, cellBounds, cellStyle, advancedBorderStyle);62                 }63 64                 // Calculate the area in which to draw the button.65                 Rectangle buttonArea = cellBounds;66                 Rectangle buttonAdjustment = this.BorderWidths(advancedBorderStyle);67                 buttonArea.X += buttonAdjustment.X;68                 buttonArea.Y += buttonAdjustment.Y;69                 buttonArea.Height -= buttonAdjustment.Height;70                 buttonArea.Width -= buttonAdjustment.Width;71 72                 // Draw the disabled button.                73                 ButtonRenderer.DrawButton(graphics, buttonArea, PushButtonState.Disabled);74 75                 // Draw the disabled button text.  76                 if (this.FormattedValue is String)77                 {78                     TextRenderer.DrawText(graphics, (string)this.FormattedValue, this.DataGridView.Font, buttonArea, SystemColors.GrayText);79                 }80             }81             else82             {83                 // The button cell is enabled, so let the base class  84                 // handle the painting. 85                 base.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);86             }87         }88     }

 

在此记录一下!

已同步至:

转载地址:http://iyrhx.baihongyu.com/

你可能感兴趣的文章
算法(Algorithms)第4版 练习 1.3.4
查看>>
jquery easyUI checkbox复选项获取并传后台
查看>>
浅析NopCommerce的多语言方案
查看>>
设计模式之简单工厂模式
查看>>
C++中变量的持续性、链接性和作用域详解
查看>>
2017 4月5日上午
查看>>
Google Chrome开发者工具
查看>>
第一阶段冲刺报告(一)
查看>>
使用crontab调度任务
查看>>
【转载】SQL经验小记
查看>>
zookeeper集群搭建 docker+zk集群搭建
查看>>
Vue2.5笔记:Vue的实例与生命周期
查看>>
论JVM爆炸的几种姿势及自救方法
查看>>
联合体、结构体简析
查看>>
使用throw让服务器端与客户端进行数据交互[Java]
查看>>
java反射与代理
查看>>
深度分析Java的ClassLoader机制(源码级别)
查看>>
微服务架构选Java还是选Go - 多用户负载测试
查看>>
我的友情链接
查看>>
Javascript中的异步如何实现回调
查看>>