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

KeyUp event fire for only specific cell in datagridview c#

我认为这是一个常见问题,但我找不到解决方案,所以我放在这里,
我正在研究 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)
                {
               }
}

您应该改用 DataGridViewKeyUp 事件。
我会做那样的事情:

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

使用编辑控件通常不是一个好主意,它会给您带来很多问题。