首页 > 代码库 > DataGridView中EnditCommit()调用之后,单元格的内容被全选了,每次输入都要鼠标点击定位到最后才能继续输入
DataGridView中EnditCommit()调用之后,单元格的内容被全选了,每次输入都要鼠标点击定位到最后才能继续输入
因为某些需求,DataGridView在输入一次内容,就要调用ECommitEdit(DataGridViewDataErrorContexts.Commit)来将内容提交,但是这样做之后,控件就会当你输入的内容都完成了,所以将内容全选(内部的原理我还没时间去了解,所以不太清楚,希望知道的人可以告诉我)
解决方案:
为了让用户可以正常输入一串字符,在每次调用CommitEdit()方法之后,都获取控件当前单元格对应控件类型TextBox currentTextBox,调用currentTextBox的select()方法将光标定位到文本最后一个字符处,代码如下
base.dgvDetail.CommitEdit(DataGridViewDataErrorContexts.Commit); TextBox currentTextBox = base.dgvDetail.EditingControl as TextBox; if (currentTextBox!=null&¤tTextBox.Text != null) currentTextBox.Select(currentTextBox.Text.Length, 0);//防止CommitEidt后文本被全选
注意还要考虑调用CommitEdit()方法时,绑定的控件不是TextBox的情况
DataGridView中EnditCommit()调用之后,单元格的内容被全选了,每次输入都要鼠标点击定位到最后才能继续输入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。