0

質問の短いバージョン:

VB6 に頼らずに、MS Access 2003 のカスタム コントロールを作成するにはどうすればよいですか?

長いバージョン:

私は過去 6 年間、C# WinForms アプリを作成する喜びに甘んじてきましたが、今では Access 2003 アプリケーションを変更する必要があります。はい、最終的に Dot Net アプリとして書き直される予定ですが、現時点では、Access 2003 アプリケーションのままにしておく必要があります。

したがって、WinForms アプリケーションを作成する上で私が気に入った点の 1 つは、任意の WinForms UI オブジェクト (コンボボックスなど) を取り込んで、機能を追加できるカスタム コントロールに変換できることです。また、複数のコントロールをカスタム コントロールとして 1 つのデザイン サーフェイスに合成し、VS.Net ツールボックスにカスタム コントロールとして表示することもできます。(何度も何度も使用する必要がある複雑なデータ収集コントロールがある場合に非常に便利です)。

プロジェクトの 1 つで Access 2003 に行き詰まっているので、Access 2003 用のカスタム コントロールを作成できるようにしたいと考えています。Access 2003 サードパーティ コントロールは COM を使用します。問題は、これまでにカスタム COM UI コントロールを作成した唯一の環境が VB 6 だということです。現在はまだ VB6 を使用していますが、VB6 は 10 年以上前のものなので、他のオプションを探す義務があると感じています。

まだ COM UI コントロールを作成している人がいると確信していますが、VB6 ではない場合、何を使用していますか?

4

1 に答える 1

1

ほとんどの Access 開発者は、あなたが求めているものを必要としないか、望んでいないため、Access に固有のこれについて多くの助けが得られるとは思えません。実際、Access アプリケーションで非ネイティブ コントロールを使用すると非常に多くの問題が発生するという理由だけで、Access のすべての種類の非ネイティブ コントロールを回避する、私がよく知っているプロのほとんどがそうです。Access は実際には多くの点で非常に特殊な動物であるため、Access で機能するコントロールを作成することは、たとえば VB アプリで機能するコントロールを作成するよりも困難です。事実はわかりませんが、これの理由の 1 つは、Access フォームの個々のコントロールがフォーカスを持っている場合にのみウィンドウ ハンドルを持つという事実にあると思います。この理由は非常に明確です。Access が設計された時点では、システム リソースは限られていましたが、そうではありませんでした。フォーム上のすべての単一のコントロールにウィンドウ ハンドルを割り当てたい (数百の可能性がある)。それはおそらく最近では問題ではありませんが、Access のデザインは同じままです。回避策はありますが、私の観察では、それらはきれいではありません。

于 2009-05-07T23:13:00.277 に答える