问题描述
环境:VB.NET(WINFORM)实现功能:datagridview里面对编辑的单元格做验证功能,如果验证未通过,着色,焦点不迁移我用了以下方法实现,可实现焦点不迁移,但是当前处于编辑状态的单元格无法上色,请各位大虾不吝赐教!!PrivateSubDataGridView1_CellValidating(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.DataGridViewCellValidatingEventArgs)HandlesDataGridView1.CellValidatingIfe.ColumnIndex=2AndAlsoe.RowIndex=2_AndAlsoDataGridView1.Rows(2).Cells(2).Value="ab"ThenDataGridView1.Rows(2).Cells(2).Style.BackColor=Color.Bluee.Cancel=TrueExitSubEndIfEndSub
解决方案
解决方案二:
如何:通过扩展Windows窗体DataGridView控件中单元格和列的行为和外观对其进行自定义MSDN地址:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxmclictl/html/9b7dc7b6-5ce6-4566-9949-902f74f17a81.htm#codeExampleSection
解决方案三:
我觉得你的设计思路不是太好,你着色的目的无法是为了提醒用户输入的数据是非法的,那么你为什么不让移动焦点呢?只有移动了焦点才提醒不是更合理吗?这样做要容易的多。如果你不让移动焦点根本无需着色啊?因为输入不合法根本就无法离开的编辑的Cell,又来着色不是多此一举吗?反而为编程带来更大的难处。
解决方案四:
你把着色的那段代码DataGridView1.Rows(2).Cells(2).Style.BackColor=Color.Blue放在e.Cancel=True之前
解决方案五:
之后妈的打错了
解决方案六:
对不移动焦点这个有点不合理,但是好像还是可以实现的你遍历你要检查的那个单元格,若出现不合法就将其背景色设置this.DataGridView1.Rows[i].DefaultCellStyle.BackColor=Color.Green;这样就好了
解决方案七:
1楼的大哥,不知道你在说什么,而且你给东西在我的联机帮助里打不开2楼的兄弟,不是我想要得,是客户就这么变态3楼的弟兄,这个方法我试过,一样不能着色5楼的兄台,你的这个想法我在DataGridView1_CellPainting里面遍历过,不行似乎只要E.CANCEL,处于激活状态的单元格就不能再做任何操作谢谢各位热心帮助
解决方案八:
如果作为一个程序员,完全要按客户的要求做,那就太失败了,那样你还不要累死啊,如果他提出的你不能实现咋办呢?应该是你引导他按你的意思去操作,只要实现功能就行了。就算是妓女,也可以拒绝客户的无理要求的
解决方案九:
7樓說的好.