4

私は現在働いている前の開発者からアプリケーションフレームワークを継承しました。このフレームワークは、複数の親子関係を利用します。多くの場合、親/親/子が発生します。私はなぜ彼がMDIを使用しなかったのかと尋ねたところ、彼が始めた数年前、MDIには前述の関係シナリオに関して大きな欠点があったと述べました。特に複数の親の場合。

私の実際の質問は次のとおりです。MDIにはまだこれらの欠点がありますか?&MDIを使用したことがある方、どのような問題があり、どのように克服しましたか?

ありがとう!

4

6 に答える 6

1

複数の親が必要なのは、継承したアプリの欠点だと思います(緊密に結合されたアプリです!)。

私はかつて、おそらく今のように結合されたアプリ(すぐにサポートに戻る必要がない木のノック)に取り組んだことがあります。元の作成者が「this.Parent.Parent.Parent.functionX」の代わりにデリゲートを使用した場合、そのアプリの欠点を修正する上で大きな進歩を遂げることができた可能性があります(デリゲートは進むべき道でさえなかったかもしれません...) 。

MDIに関しては、個人的には好きですが、元の開発者が必要な関係を築くことを中心に設計しようとしているため、元の開発者が見つけた欠点について話すことはできません。

于 2008-12-16T22:59:05.987 に答える
1

確かに、すべてのMDIは、画面の1つの明確に識別された領域にアプリケーションのすべてのウィンドウを1か所に含める方法です。これで、アプリが複数のドキュメントを持ち、人々がそれを使用し、使用されていないときにそれを「片付け」たいアプリケーションである場合、MDIはおそらくあなたに適しています。そうでない場合は、そうではありません。

トニー

于 2008-12-16T23:07:26.440 に答える
1

MDI インターフェイスの問題の 1 つは、MDI コンテナー内に無制限のウィンドウを登録できないことです (この Microsoft KB 項目を参照してください)。多くのMDIアプリケーションが頻繁に使用されているときにそのエラーが発生するのを見たので、私はそれを投稿したと思いました.

私は一般的に SDI インターフェイスが好きで、「何か」のインスタンスごとに新しいウィンドウを生成するのではなく、「何か」の複数のインスタンスで同じコントロールとウィンドウを共有するようにします。

プログラム インターフェイスの詳細はわかりませんが、SDI インターフェイスといくつかのモーダル ダイアログに (本当に必要な場合) 作り直すことができないものをまだ見つけていません。

于 2008-12-17T11:13:41.840 に答える
0

MDIをもう少し調査する必要があるようです。これまでに教えられてきたこととは逆になるので、WPFのコメントに興味があります。

また、興味深い点として、フレームワーク開発者は自分のアーキテクチャをHDI(ホストドキュメントインターフェイス)と呼んでいます。

ありがとう!

于 2008-12-17T15:32:47.887 に答える
0

確かにMDIでいくつかの不具合が発生することはありますが、正直なところ、複雑なものが必要な場合は、winformsではなくWPFを検討することをお勧めします。

于 2008-12-16T20:44:42.843 に答える