2009-04-07 11 views
1

これは誰でもこれを手伝うことができますが、ここにはあります。私はJanus GridEXコントロールでVB6アプリケーションを継承しました。レコードを反復処理し、編集可能です。問題は、セルを編集してボタンを押して次のレコードに移動すると、変更が次のレコードに適用され、編集中のレコードには適用されません。それは次のレコードに行く前に編集を完了するために必要です。私はVC++の前にこのような問題を抱えていました。そして、時には、あなたがコントロールしているコントロールに「Kill​​Focus」する必要があります。私はここで何をすべきか分かりません。私はキャリッジリターンを送ろうとしました。なぜなら、あなたが編集セルから戻ってくると動作しますが、手動でキャリッジリターンを送ることはできません。秘密は何ですか?Janus GridEX問題

答えて

1

ボタンがJanus GridEXの内部にあるかどうかによって異なります。それが内部であれば、あなたができる唯一のことは、この問題が発生したことを知らせるシーケンスがあるかどうかを見るためにコントロールが公開するイベントを見ることです。次に、移動した行を元に戻して修正アクションを実行し、編集した行を残しておきます。

ボタンがJanusの外部にある場合、デバッグモードを使用して、フォーカスの次の行への転送を制御するステートメントのシーケンスをトレースできます。これは、コマンドの特定のシーケンスの不具合または副作用である可能性があります。私は、両方のコントロールで走ってきました。

デバッグモードで編集することができますので、異なるアプローチを試して、動作するものが見つかるまで試すことができます。

2

グリッドはバインドされているか、バインドされていませんか?

あなたの説明から分かりにくいですが、あなたがこの問題を抱えていれば、それはおそらく拘束されていると思います。

もう1つの答えとして、コントロールに組み込まれているRecordNavigatorのボタンまたは別のボタンですか?私がこれをもう一度持ち出す理由は、ツールバーがしばしばJanusGridの動作方法を妨害して干渉するVB6アプリケーションで問題を見てきたことです。

この制限を回避するため、フォーム上にJanusGridコントロールがあるツールバーのクリックハンドラーに次のコードを追加しました。変更が直ちに現在の行に適用され

jsgxYourGridName.UpdateそしてjsgxYourGridName.EditMode = jgexEditModeOn場合は、この方法。

これが役立たない場合は、グリッドにバインドされているレコードセットがグリッドの内部レコードセットと同期しないという問題も見受けられます。これは、グリッドのブックマークとレコードセットのブックマークを比較することで確認できます。

e。 mrsYourRecordset.Bookmark = jsgxYourGrid.ADORecordset.Bookmark

私はこのようなものを使っているかもしれません。

jsgxYourGrid.ADORecordset.Bookmark = jsgxYourGrid.RowBookmark(jsgxYourGrid.RowIndex(jsgxYourGrid.Row)) 

最後に、グリッドは、ボタンをクリックしたときには本当に何であるかのレコードを参照するために、グリッドのBeforeUpdateRowColChangeおよび/またはAfterColUpdateイベントにブレークポイントを設定してみてくださいすることができます。

関連する問題