在使用bindingSource、bindingNavigator+DataGridView修改时会发现, 当你需要保存修改过后的内容,必须将光标指向另外一行, DataGridView才会将编辑过后的数据提交到数据缓存区, 那么,就会让客户感觉起来很不方便(无法直接点保存更新) 这两天上网查了几个方法,可行,下面列举一下: 一、最常见的解决办法。 使用select(),或者修改当前单元格索引使光标跳到另外一行。 这种方式有其弊端,那就是当你只有一行数据时,这方法就行不通。 只能在你点保存之前,新增一行空数据,然后将光标移向空数据,保存之后再将这行空数据删除。 这种方式实现起来比较麻烦,不利于快速开发。 二、使用EndEdit()方法 这种方法其实仔细看看和上面的方法其实同出一辙, 唯一不同的是,这是系统自带的方式,当然就不会出现上面出现的问题。 不过这里要注意一下,只有在保存之前bindingSource和DataGridView都使用了EndEdit()方法表格内数据才能成功提交。(只用一个是没有效果的。) 三、在网上看到的比较搞笑的方法 SendKeys.Send( "{ENTER} ") 模拟人工输入“回车” 当时看到觉得挺搞笑,不过这也不失为一种良方。 |