何が問題なのですか:
SpreadsheetGear WorkbookView でセルを編集し、Enter、Tab、または矢印キーのいずれかを押して CellEndEdit イベントを開始すると、入力した値が消去されます。
環境:
- WorkbookView でセルを編集すると、TextEdit のように動作する WorkbookView の上にコントロールが追加され、データを入力できるようになります。CellEndEdit イベントが発生すると、コール スタックは WorkbookView が ControlCollection.Remove(...) を呼び出すことを示します。
- これにより、フォームはページ上の別のコントロールにフォーカスを移します。問題のページには、ベース ページから継承された WorkbookView の上にいくつかの TextEdit コントロールが含まれています。最初の TextEdit に少しの間フォーカスが与えられます。
- これらの TextEdit で検証が設定され、最終的にモデルの更新が開始されます。これは、ビューの変更がモデルにプッシュされる前にすべて発生するため、WorkbookView の内容が消去されます。
質問:
WorkbookViews イベント ハンドラーがビューの変更をモデルにプッシュする前に、他のコントロールがフォーカスを受け取らないようにする方法はありますか? または、これをより適切に処理する別の方法はありますか?
私がどこかで詳しく説明できるか、または自分自身をよりよく説明できるかどうか教えてください、ありがとう!
アップデート:
1 つの DevExpress TextEdit と 1 つの SpreadsheetGear WorkbookView を使用してテスト アプリケーションを作成しました。textEdit1_Validated と textEdit1_Enter を追加すると、同じ動作になります。フォーカスは、検証ハンドラーが原因であると思われる TextEdit コントロールに移動します。