仅针对datagridview中的特定单元格的keyUp事件触发c#

时间:2015-02-10 04:46:12

标签: c# winforms datagridview

我认为这是常见问题,但我无法找到解决方案,所以我放在这里,
我正在开发Windows应用程序项目,因为我需要获取员工详细信息,其中我有限制,如工资列应该是数字,因此应用此列的密钥事件,但每当我尝试编辑datagridview中的员工地址它发射Keyup事件,我已经添加了数字条件所以我得到例外,我只有在我输入datagridview工资列中的工资金额时才调用此事件。

private void DataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (e.Control.GetType() == typeof(DataGridViewTextBoxEditingControl))
            {
                TextBox t = (TextBox)e.Control;
                if (DataGridView.CurrentCell.ColumnIndex == DataGridView.Columns["Salary"].Index)
                {
                    t.KeyUp += new KeyEventHandler(t_KeyUp);
                }
            }
        }


    private void t_KeyUp(object sender, KeyEventArgs e)
            {
                //CheckForInt = false;
                try
                {
                    //My Code Condition applies here
                }
                catch(Exception)
                {
               }
}

1 个答案:

答案 0 :(得分:1)

您应该使用DataGridView' KeyUp事件 我会做那样的事情:

private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
    if (dataGridView1.CurrentCell != null && dataGridView1.IsCurrentCellInEditMode && dataGridView1.CurrentCell.ColumnIndex == ColumnSalary.Index)
    {
        ...
    }
}

使用编辑控件通常是一个坏主意,会引发许多问题。