1

そこで、VB6 アプリケーションの COM コントロールとのインターフェイスをすばやく変更するためのスクリプトを作成しています。(C# .net で作成)。ほとんどの場合は問題なく動作しますが、一部のパネルで多くの問題が発生しています。

基本的に、.frm ファイルを開いて読み取り、いくつかのコントロールを見つけたら、それらの値を変更したり、新しいものを挿入したりします。パネルを見つけたら、その周りに別のパネルを作成して見栄えを良くします。Top = 2340たとえば、新しい要素のファイルに入れます。.frm をメモ帳で開くと、 の値が にあることがはっきりとわかりTopます2340。VB6 を開くと、パネルの上部の値は になりTop = 8190ます。Left の値も変更しますが、他には何も変更しません。vb6 を保存して終了し、メモ帳で .frm を再度開くと、Top値が に保存され8190ます。

VB6 が .frm ファイルの値とは異なる値を使用するのはなぜですか? 要素が互いに重なり合うのを避けようとしていますか? Topファイルを読み取ってから開くまでの間に、プロパティの異なる値を強制するために何が起こっているのでしょうか?

4

1 に答える 1

0

単なる理論ですが、問題はScaleModeプロパティが正しく設定されていないことだと思います。デフォルトでは、コンテナー ウィンドウにプロパティがない限り、Twips に設定されます。したがって、特定のコンテナーで有効な場合でも、他のコンテナーでは有効ではありません。

たとえば、MDIForm コンテナーは Twips を強制し、配置に基づいてオブジェクトを再配置することさえできます。

これがフォーム自体であり、言及する価値があるとは思わない場合は、StartUpPositionが適切に 0 (手動) に設定されていることを確認してください。

于 2013-08-05T15:33:49.357 に答える