有时,我们需要在DataGridView中,针对某行数据进行简单的变换操作,且变换后显示的内容要与变换关不一致,不能再变回来,如下图:

网上搜索到一个贴子,里面提供了两种办法,我选用了其中一种。
http://social.msdn.microsoft.com/Forums/en/winformsapplications/thread/f82ec651-6b22-44b0-8ead-15796387424f
就是将这个DataGridViewButtonCell换成 DataGridViewTextBoxCell,非常简单
上图的实现代码:
| privatevoidgvSaleOrder_RowPrePaint(objectsender, DataGridViewRowPrePaintEventArgs e)  | 
 
|             if(gvSaleOrder["writeOff", e.RowIndex].Value.ToString() == "1"&& gvSaleOrder["btnConfirm", e.RowIndex].Value.ToString() != "已销账")  | 
 
|                 gvSaleOrder["btnConfirm", e.RowIndex] = newDataGridViewTextBoxCell();  | 
 
|                 gvSaleOrder["btnConfirm", e.RowIndex].Value = "已销账";  |