我的代码大致是这样的(省掉一些细节): private void dgv1_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
{
if (!dirtyRow) return; try
{
//将该行所有单元格数据写入数据库...(省略代码)
}
catch (Exception ex)
{
//如果写不进去,肯定是上面某个单元格数据有错
ShowPop(ex.Message, e.RowIndex);
dirtyRow = false;
return;
}
//执行完以上代码之后,紧接着发生了我单击的下一行单元格的Cell_Enter事件,于是光标还是跑到下一行去了.
} void ShowPop(string msg, int r)
{
string key = "";
//根据msg找出错误单元格所在列的名称key...(省略代码)
MessageBox.Show(msg);
if (key != "")
{
//将光标定位到错误单元格
dgv1.CurrentCell = dgv1.Rows[r].Cells[key];
dgv1.BeginEdit(false);
}
}
我相信这个问题应该比较简单,只是我思想现在一直转不过弯来了!
{
if (!dirtyRow) return; try
{
//将该行所有单元格数据写入数据库...(省略代码)
}
catch (Exception ex)
{
//如果写不进去,肯定是上面某个单元格数据有错
ShowPop(ex.Message, e.RowIndex);
dirtyRow = false;
return;
}
//执行完以上代码之后,紧接着发生了我单击的下一行单元格的Cell_Enter事件,于是光标还是跑到下一行去了.
} void ShowPop(string msg, int r)
{
string key = "";
//根据msg找出错误单元格所在列的名称key...(省略代码)
MessageBox.Show(msg);
if (key != "")
{
//将光标定位到错误单元格
dgv1.CurrentCell = dgv1.Rows[r].Cells[key];
dgv1.BeginEdit(false);
}
}
我相信这个问题应该比较简单,只是我思想现在一直转不过弯来了!
解决方案 »
- 急~~关于读取Excel值为NULL的处理问题
- da.Completed += (o1, e1) =>{ int i=0}; 什么语法?
- c# socket关于同步异步问题
- C# treeview
- 求修改一个正则表达式!
- 一个DataTable,想按它里的一列从大到小来排序整个表,好像是有一个方法吧,是DT.Select("")吗
- 有没有高手帮忙写一个简单的数据库录入数据的例子
- 水晶报表自定义纸张设置不生效,请大家指点
- 今天犯了个低级错误,丢人,在此散分…………
- 【Add-In】关于QueryStatus方法被执行多次的问题
- datagridview中如何直接在单元格中修改数据
- 有人做阿里软件吗
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{
//你要做的事
return true;
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
} 让他换列不换行