C#中对Winform中的DataGridView的控制技巧。(单独控制某单元格的按钮不显示、某单元格的ReadOnly)

摘要:
具体实现代码如下:)//在绘制表格之前定义事件,并在绘制之前将按钮转换为普通单元格。privatevoidataGrid_ RowPrePaint{如果{if{dataGrid[7,e.RowIndex]=newDataGridViewTextBoxCell();dataGrid[7,e.RowIndex].Value=string.Empty;}}2: 控制是否可以修改单元格。(由于单元格的ReadOnly属性不是单独控制的,因此只能通过技术来控制。

1:控制按钮列中的某一行不显示按钮。(使用环境:数据的移动,如把第二行的数据移动到上面去,最下面的一行为合计行,不允许移动,因此,就需要把第一行与最后一行的按钮屏蔽掉。屏蔽的方法:把按钮改成普通的单元格。具体实现代码如下:(第8列中的第一行与最后一行按钮不显示))

//定义绘画表格前的事件,在绘画前把按钮转换成普通单元格。dataGrid.RowPrePaint+=dataGrid_RowPrePaint;
//控制第一行和最后一行的按钮不显示。privatevoiddataGrid_RowPrePaint(objectsender,DataGridViewRowPrePaintEventArgse)
{
if(e.RowIndex==0||e.RowIndex==dataGrid.RowCount-1)
{
if(dataGrid[7,e.RowIndex]isDataGridViewButtonCell)
{
dataGrid[7,e.RowIndex]=newDataGridViewTextBoxCell();
dataGrid[7,e.RowIndex].Value=string.Empty;
}
}
}
2:控制某单元格是否允许修改。(由于没有单独控制某个单元格的ReadOnly属性,因此,只能通过技巧来控制了。原理其实是判断进入的单元格时判断做逻辑处理,对于允许修改的,就把整个表格的ReadOnly设为false,否则就设为 true)
privatevoiddataGrid_RowEnter(objectsender,DataGridViewCellEventArgse)
{
if(e.RowIndex==dataGrid.RowCount-1)
dataGrid.ReadOnly=true;
else
dataGrid.ReadOnly=false;
dataGrid.Columns[0].ReadOnly=true;
dataGrid.Columns[3].ReadOnly=true;
}

原创作品出自努力偷懒,转载请说明文章出处http://blog.csdn.net/kfarvidhttp://www.cnblogs.com/kfarvid/


免责声明:文章转载自《C#中对Winform中的DataGridView的控制技巧。(单独控制某单元格的按钮不显示、某单元格的ReadOnly)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c#截取两个指定字符串中间的字符串(转载)彻底解决Delphi的DBGrid控件鼠标滚轮问题(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#客户端(WinForm)开机自动启动实现

/// <summary> ///修改程序在注册表中的键值 /// </summary> /// <param name="isAuto">true:开机启动,false:不开机自启</param> private voi...

ADO.NET复习

目录 ADO.NET ADO.NET思维导图 命名空间 常用类介绍 Connection 类概述 Command 类概述 DataReader 类概述 DataAdapter 类概述 DataSet 类概述 DataTable DataRow类 DataColumn 类 DataSet:更新数据库(SqlCommandBuilder)...

R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图

第十一章 中级绘图 本节用到的函数有: plot legend corrgram mosaic 11.2折线图 如果将散点图上的点从左往右连接起来,那么就会得到一个折线图。 创建散点图和折线图: > opar<-par(no.readonly=TRUE) > par(mfrow=c(1,2)) > t1<-su...

python使用xlrd读取excel数据时,整数变小数的解决办法

python使用xlrd读取excel数据时,整数变小数: 解决方法: 1.有个比较简单的就是在数字和日期的单元格内容前加上一个英文的逗号即可。如果数据比较多,也可以批量加英文逗号的前缀(网上都有方法)。(这种比较适合数据量较少的时候,如果数据量比较多,建议使用方法2) 2.通过程序代码判断单元格内容的ctype来解决 实例:  for i in ran...

WinForm 限制同一个进程只能打开一次

打开Program.cs 代码文件,这里是程序的入口点,如下: static voidMain() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false)...

C# winForm ListBox 每行显示不同颜色设置

使用ListBox时,每行显示不同的颜色 1、把AllowHtmlDraw属性设置为True 2、直接在Add或者AddRange里写标签 代码里用的是DEV插件里的ListBox,使用原生的也是一样的写法 使用AddRange写法: 1 listBoxControl2.AllowHtmlDraw =DevExpress.Utils.DefaultBool...