日期:2014-05-18  浏览次数:20820 次

dataGridView1在某个单元格编辑后,按enter事件
在C#winform窗体下
我想在dataGridView1,编辑某单元格后,按enter,比如执行 
if (e.KeyChar == '\r')
{
MessageBox.Show("你好");
}
也就是要监听enter事件。现在是无论我怎么写,按enter读是自动换行到下一行的单元格。
请问:如何实现dataGridView1,编辑某单元格后,按enter,执行enter事件的内容。

------解决方案--------------------
e.keyCode == 13
------解决方案--------------------
Visual Studio的话,光标移到 if (e.KeyChar == '\r') 这一行,按F9,在最前面会出现一个红点。按F5进行Debug,执行到 if这里就会停下,你可以在 监视窗内 输入e.KeyChar,就可以看到值。这个值当然是你先前按下什么键,就是那个键的值。

------解决方案--------------------
Gird中没有keypress, 你可以在CellValueChanged事件中编写,当然之前需要多一个判断,是在哪一列
------解决方案--------------------
用CellLeave事件:
C# code
private void dgvWR_CellLeave(object sender, DataGridViewCellEventArgs e)
        {
            MessageBox.Show(dgvWR.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
        }

------解决方案--------------------
private void dataGridView_CellEnter(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show("你好");
}
------解决方案--------------------
那就用CellValueChanged事件吧,不过在dataGridView加载数据的时候,要做一下判断数据是否全部加载完。。