0

VisualStudio ツールボックスからフォームにドラッグできる Delphi TFrame を含む CustomControl を C# で作成しようとしています。これだけ正しく動作していますが、コントロールのサイズを変更しようとすると、TFrame がデザイン モードで実行されていないためにエラーが発生します (フレーム上のデータ グリッドのイベント ハンドラーにアクセスしようとします)。

さまざまなコントロール(データ グリッド、コンボボックスなど)を含む Delphi で TFrame オブジェクトを作成し、TFrame オブジェクトを含む C# で CustomControl を作成しました。

この問題を回避するには、DesignMode が true になるように、TFrame オブジェクトの Site プロパティを設定する必要があると思います。どうすればこれを行うことができますか?

各メソッドの開始時に LicenseManager.UsageMode が DesignTime に設定されているかどうかを確認することで、この問題を回避できることはわかっていますが、これは問題を解決するには非常に悪い方法のようです。可能であれば、サイトのプロパティを正しく設定したいと思います。

CodeGear RAD Studio 2007 と Visual Studio 2008 を使用しています。

前もって感謝します

4

1 に答える 1

0

この問題は、コンストラクターまたはUserControl内で作成されたコンポーネントにDesignModeプロパティとSiteプロパティが設定されないVisualStudio内のバグが原因であることが判明しました。したがって、DesignModeプロパティは常にfalseです。

いくつかの提案された解決策があります。それらはすべて、実行時にのみコードを実行する必要があるイベントハンドラーまたはメソッドにテストを追加することを含みます。最初のオプションはLicenseManager.UsageModeプロパティをチェックすることであり、2番目のオプションは実行中のプロセスの名前をチェックすることです(たとえば、その「devenv」の場合はその設計時)。

于 2011-04-08T13:08:40.997 に答える