c# – DataGridView“Enter”键事件处理
发布时间:2020-12-15 08:44:30 所属栏目:百科 来源:网络整理
导读:我有一个填充了DataTable的DataGridView,有10列.当我单击Enter键时,我有一个从一行移动到另一行的情况,然后我需要选择该行,并且需要具有该行值. 但是当我选择第n行时,它会自动移动到n 1行. 请帮帮我… 在页面加载事件中: SqlConnection con = new SqlConnec
我有一个填充了DataTable的DataGridView,有10列.当我单击Enter键时,我有一个从一行移动到另一行的情况,然后我需要选择该行,并且需要具有该行值.
但是当我选择第n行时,它会自动移动到n 1行. 请帮帮我… 在页面加载事件中: SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MHS;User ID=mhs_mt;Password=@mhsinc"); DataSet ds = new System.Data.DataSet(); SqlDataAdapter da = new SqlDataAdapter("select * from MT_INVENTORY_COUNT",con); da.Fill(ds); dataGridView1.DataSource = ds.Tables[0]; 然后, private void dataGridView1_KeyPress(object sender,KeyPressEventArgs e) { if (e.KeyChar == (Char)Keys.Enter) { int i = dataGridView1.CurrentRow.Index; MessageBox.Show(i.ToString()); } } private void dataGridView1_CellClick(object sender,DataGridViewCellEventArgs e) { int i = dataGridView1.CurrentRow.Index; MessageBox.Show(i.ToString()); } 解决方法
这是DataGridView的默认行为,也是第三方供应商在其他数据网格中的标准.
这是发生的事情: >用户点击回车键 因此,当按下回车键时,当前单元格已经改变. 如果要在DataGridView更改行之前获取用户所在的行,可以使用以下命令.这应该适合您现有的代码(显然您需要为它添加事件处理程序): void dataGridView1_PreviewKeyDown(object sender,PreviewKeyDownEventArgs e) { if (e.KeyCode == Keys.Enter) { int i = dataGridView1.CurrentRow.Index; MessageBox.Show(i.ToString()); } } 我希望这有助于指出你正确的方向.不知道你希望在这里做什么,但希望这能解释你所看到的情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |