2

4つのフォームを含むVisualC#WinFormsアプリケーションを作成しています。

  1. 2つのボタンの間、場合によっては最大10個程度の「コントロール」フォーム。したがって、画面はボタンの最大数に十分なスペースを収容する必要があります。
  2. 大きなリッチテキストボックスコントロールを含む「ロギング」フォーム。
  3. 微調整可能なさまざまな構成設定を備えたタブコントロールを含む「構成」フォーム。
  4. #2と非常によく似た「注文ログ」フォーム。

ユーザーは、これらの各フォームをさまざまな方法で再配置したいと思う可能性があります。ただし、これらのフォームは親フォームによって「管理」され、アプリケーションが閉じたときに他のすべてのフォームが閉じられるようにしたいと思います。MDIアプローチを維持しながら、C#WinFormsを使用して子フォームを親フォームの外に移動できるようにする方法はありますか?ありがとう!

4

3 に答える 3

4

通常、このような場合は「ドッキング」機能を使用します。VisualStudio自体でも同じ方法が実行されます。このようにして、ユーザーはフォームを非常に簡単に非表示/表示できます。

このようなパッケージにはVisualStudioは付属していませんが、このための無料のライブラリがあります。たとえば、これをhttp://sdock.codeplex.com/で確認してください。

于 2011-04-29T20:29:38.580 に答える
2

何でもやりたいことができます。

フォーム間に親子関係を確立できます。または、必要に応じて、メインフォームが閉じられたときに、他のフォームを明示的に閉じることができます。

ほとんどのシステム(たとえばOfficeなど)はMDIから離れているため、複数のフォームがある場合でも、おそらくSDIスタイルのインターフェイスを使用します。MDIは画面の領域をうまく利用しない傾向があり、最近のほとんどのユーザーはその癖のいくつかに対処することに慣れていません。

于 2011-04-29T20:29:25.067 に答える
2

私はMDIアプリケーションを少し使って、似たようなことを試しました。

私が経験から学んだことは、決める前に考慮すべきことがいくつかあります。

MDIで気付いたのは、フォームとコントロールの描画が通常のフォームよりも少し遅いように見えることです。そのため、リンク/ボタンをクリックして新しい子フォームを表示すると、新しい子フォームが画面に視覚的にペイントされ、アプリケーションの動作が遅くなっているように見えます。これは、ハードウェアとOSの膨大な組み合わせでテストされており、いくつかのコントロールを備えたフォームを開く以外に何もしていないテストアプリケーションでテストされています。

MDIのもう1つの点は、子ウィンドウが親ウィンドウ内に含まれることです。これは、一部のアプリケーションでは機能しますが、他のアプリケーションでは煩わしいものです。

MDIのもう1つの癖は、ウィンドウの透明度が必要な場合は、ウィンドウの透明度を使用できないことです。

于 2011-04-29T21:37:11.383 に答える