0

私は C# の初心者ですが、BindingNavigator の使用中に問題が発生しました。

データベースのテーブルのレコードを更新するために bindingNavigator を使用しています。現在の更新されたレコードを離れて [次へ] ボタンをクリックして次のレコードを入力する前に、いくつかの検証を実行します。何か間違っている場合は、間違ったフィールドに移動するのではなく、間違ったフィールドを修正する機会を与える警告が表示されることを願っています。次のレコード。

bindingNavigatorMoveNextItem_MouseDown イベントにいくつかの行を追加しましたが、現在のレコードに問題があっても次の項目に移動します (フィールドには論理的な接続があります)。ここの専門家はそれについて私を助けることができますか? どうもありがとう!

4

2 に答える 2

2

2つのアプローチがあります。WndProcマウスクリックウィンドウメッセージがベースを呼び出さないようにオーバーライドする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 に答える