C# winform datagridview 编辑状态的问题
Posted lonelyrains
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform datagridview 编辑状态的问题相关的知识,希望对你有一定的参考价值。
winform的datagridview,其中某个cell在编辑时,如果再点击其他菜单或者使用快捷键完成某个功能,编辑的cell所在的内容会保留原来的值,而不会更新为新的值
控件没有主动触发losefocus的功能
所以需要考虑如何实现一个work around
既然菜单和快捷键不会触发更新,而同一个界面的button.focus可以触发datagridview的值更新,那么可以定义一个size为0,0的button,让它focus,再进行其他操作。
注意1:直接设置visible=false或者button.hide,然后设置button.focus会没有效果
注意2:要设置属性button.TabStop=false,避免tab切换聚焦时的停留
注意3:窗口的KeyPreview属性设置为true才能触发快捷键
不使用此方法之前的效果/使用此方法之后的效果,见下列动图:
示例代码: ---> 精髓在button1.Focus();
// 菜单测试示例
private void 显示cell内容ToolStripMenuItem_Click(object sender, EventArgs e)
button1.Focus();
MessageBox.Show(dataGridView1.Rows[0].Cells[0].Value as string);
// 快捷键测试示例
private void Form1_KeyDown(object sender, KeyEventArgs e)
if (e.KeyCode == Keys.F2)
button1.Focus();
MessageBox.Show(dataGridView1.Rows[0].Cells[0].Value as string);
以上是关于C# winform datagridview 编辑状态的问题的主要内容,如果未能解决你的问题,请参考以下文章
c# winform datagridview界面上的行删了,但datagridview数据源没有同步如何解决
c# winform datagridview怎么能达到如图的效果
C# winform 如何用datagridview增、删、改数据
winform c# Datagridview 选中行 急!!!