当前位置:编程学习 > C#/ASP.NET >>

在线等待,datagridview 焦点迁移,单元格着色的问题

环境:VB.NET(WINFORM)
实现功能:datagridview里面对编辑的单元格做验证功能,如果验证未通过,着色,焦点不迁移

我用了以下方法实现,可实现焦点不迁移,但是当前处于编辑状态的单元格无法上色,请各位大虾不吝赐教!!

    Private Sub DataGridView1_CellValidating(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellValidatingEventArgs) Handles DataGridView1.CellValidating

        If e.ColumnIndex = 2 AndAlso e.RowIndex = 2 _
            AndAlso DataGridView1.Rows(2).Cells(2).Value = "ab" Then
            DataGridView1.Rows(2).Cells(2).Style.BackColor = Color.Blue
            e.Cancel = True
            Exit Sub
        End If

    End Sub --------------------编程问答-------------------- 如何:通过扩展 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樓說的好.
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,