gpt4 book ai didi

c# - 防止 C# DataGridView 更改当前行的事件

转载 作者:太空狗 更新时间:2023-10-29 21:45:09 25 4
gpt4 key购买 nike

我需要一个在 System.Windows.Forms.DataGridView 的当前行时触发的事件将被更改,这允许我取消此更改,例如通过将 EventArgs 的取消属性设置为 true。

我知道 CurrentCellChanged (调用事件时该行已经更改)和 RowLeave (不可能取消休假操作)事件,但都没有提供我需要的东西。我还尝试使用 RowValidating事件,但是当行将要被验证时也会调用此事件(无意离开它),例如当我调用 <ParentForm>.Validate() 时,这会导致许多混淆。

是否有任何其他可能性或更干净的(呃)解决方案来获得所需的行为?

最佳答案

刚遇到类似的问题,经过多次尝试,我唯一的解决方法是使用“进入并离开”来了解表单何时处于非事件状态,以避免验证 - 幸运的是,触发顺序在行\列级别事件之前

HTH - 迈克

    private bool IsActive = false;

private void dgbList_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
{
if (IsActive)
{
if (Do_I_NeedTo_Cancel)
e.Cancel = true;
}
}

private void dgList_Leave(object sender, EventArgs e)
{
IsActive = false;
}

private void dgList_Enter(object sender, EventArgs e)
{
IsActive = true;
}

关于c# - 防止 C# DataGridView 更改当前行的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17830570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com