0

我是一个新的 C# 用户,现在我在使用 BindingNavigator 时遇到了问题。

我正在使用 bindingNavigator 来更新数据库表中的记录。在我离开当前更新的记录并通过单击下一步按钮输入下一条记录之前,我将执行一些验证,如果有任何不正确的地方,我希望它可以发出警告,让我有机会更正错误的字段而不是移动到下一个记录。

我在 bindingNavigatorMoveNextItem_MouseDown 事件中添加了一些行,但即使当前记录有问题(字段有一些逻辑连接),它仍会移动到下一个项目。这里的任何专家可以帮助我解决这个问题吗?非常感谢!

4

2 回答 2

2

您有两种方法:覆盖WndProc并阻止鼠标单击窗口消息调用 base 的WndProc,或者简单地覆盖OnMouseClick

class Hello : BindingNavigator
{
    private bool canFire = false;
    protected override void OnMouseClick(MouseEventArgs e) // second approach
    {
        // don't call base method so that event doesn't fire up
        if (this.canFire)
             base.OnMouseClick(e);
    }
}
于 2012-07-19T04:14:41.753 回答
0

我知道这是旧的.. 但对于其他任何人......您应该使用普通按钮,并且只需使用验证事件,如果有任何验证失败,则取消。该控件在设计器中不显示该属性,但您仍然可以设置它:bindingnavigator.CausesValidation = true; 我在表单加载中执行此操作。

仅此一项仍然无法做到。您还需要设置焦点。bindingnavigator.focus(); 我在 bindingnavigator_ItemClicked 事件中执行此操作,因此无论单击什么按钮都会发生。

于 2015-05-08T16:38:51.890 回答