datagridview单元格(选中问题)

jianjian51 2006-06-21 07:29:44
// datagridview单元格值发生变化的时候出发这个事件
private void datagridview_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
string strSelecteddgrd;
string strtype;

//选中的那行
int intInputRow = this.datagridview.CurrentCell.RowIndex;

//选中的那行单元格id记录
strSelecteddgrd = this.datagridview.Rows[intInputRow].Cells[2].Value.ToString();

//选中的那行属性类型
strtype = this.datagridview.Rows[intInputRow].Cells[3].Value.ToString();
//如果验证出错
if (!InputCheck(strSelecteddgrd, strtype))
{
//焦点返回到修改时候的单元格
datagridview.Rows[intInputRow].Cells["Param_Value"].Selected = true;
return;
}
}

上边的代码没有错 但是效果跟我想的不一样 我是希望如果出错焦点到出错的那个单元格 但是她选中出错的单元格 也选中了别的单元格(离开点击时选中的)
我试了让datagridview单选 但是会出错(datagridview.Rows[intInputRow].Cells["Param_Value"].Selected = true;)
请高手指点 如果出错就返回到出错的单元格 不能选中别的单元格
...全文
831 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcmj 2006-06-22
  • 打赏
  • 举报
回复
用mouseRow muoseCol决定单元,然后设置试过吗
jianjian51 2006-06-22
  • 打赏
  • 举报
回复
其实问题很简单 就是 不管用什么方法 只要我单元格里的输入字符不是数值型 焦点返还回去

在线等 问题解决 马上揭帖
jianjian51 2006-06-22
  • 打赏
  • 举报
回复
这句话 我昨天就试过了 但是不行哦 她好像先做CellEndEdit 在执行鼠标事件 焦点咳在定位在鼠标点击的地方
lincon77 2006-06-22
  • 打赏
  • 举报
回复
不好意思,写错了,dgv1.CurrentCell=dgv1[iCol ,iRow];改成
datagridview1.CurrentCell=datagridview1[iCol,iRow];
lincon77 2006-06-22
  • 打赏
  • 举报
回复
int iCol, iRow;
bool isValided = true;
private void datagridview_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
string strSelecteddgrd;
string strtype;

//选中的那行
int intInputRow = this.datagridview.CurrentCell.RowIndex;

//选中的那行单元格id记录
strSelecteddgrd = this.datagridview.Rows[intInputRow].Cells[2].Value.ToString();

//选中的那行属性类型
strtype = this.datagridview.Rows[intInputRow].Cells[3].Value.ToString();
//如果验证出错
if (!InputCheck(strSelecteddgrd, strtype))
{
iCol =e.ColumnIndex;
iRow = e.RowIndex;
isValided = false;
return;
}
}

//
private void datagridview1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (!isValided)
{
dgv1.CurrentCell=dgv1[iCol ,iRow];
}
}
lincon77 2006-06-21
  • 打赏
  • 举报
回复

//焦点返回到修改时候的单元格
datagridview.Rows[intInputRow].Cells["Param_Value"].Selected = true;

改成
datagridview.CurrentCell=datagridview.Rows[intInputRow].Cells["Param_Value"]

jianjian51 2006-06-21
  • 打赏
  • 举报
回复
没有人回答啊
jianjian51 2006-06-21
  • 打赏
  • 举报
回复
在说明一点
datagridview.Rows[intInputRow].Cells["Param_Value"].Selected = datagridview.Rows[intInputRow].Cells[2].Selected

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧