2

私は、グリッド内のいくつかの値を数式で計算できる複雑なシステムに取り組んでいます。現在、グリッドの上にテキストボックスコントロールがあります。このように動作します: インプレース エディター内で編集を開始し、最初の記号が '=' の場合、フォーカスは上のテキスト ボックス コントロールに移動します。この時点で、グリッドは読み取り専用になり、ユーザーがグリッド セルをクリックすると、クリックされたセルの座標が数式エディターに渡されるため、数式へのリンクを追加できます。テキスト エディターで Enter または Esc を押すと、基になるデータセットに数式が書き込まれ、グリッドが編集可能になります。

目標:

これもExcelグリッドのように見せたいです。フォーカスが外のどこかにジャンプするのは好きではありません。エディターを開いたままにして、同時にユーザーがグリッド上の任意の場所をクリックできるようにすることは可能ですか? では、すべての数式編集はインプレース エディター内で実行されるのでしょうか? 現在、エディターを閉じることを禁止するイベントはありません。「ValidateEditor」イベントを使用すると、スクロールバーの使用さえ許可されません。エディタを開いたままにして、ナビゲーションを機能させたままにする方法はありますか?

4

1 に答える 1

0

私はそれを自分で回避する方法を見つけたようです。ValidatingEditorEventを処理し、編集値が「=」で始まる場合は、コントロールにブールフラグを設定します。また、カーソル位置の前後のテキストとセル座標(FocusedRowHandle、FocusedColumn)を覚えています。Clickイベントを受け取ると、クリックされたセルの座標を取得します。ブールフラグが設定されている場合は、前のセルにフォーカスし、エディターをアクティブにして、エディターに必要なものを追加します。正常に動作しているようです。

于 2012-11-13T10:59:40.630 に答える