問題タブ [mdi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
5481 参照

delphi - Delphi MDI アプリケーションと MDI チルドレンのタイトルバー

デフォルトのテーマで XP を実行する Delphi 2006 で作成された MDI アプリケーションがあります。

MDI 子の外観を制御して、各ウィンドウの大きな XP スタイルのタイトル バーを回避する方法はありますか?

の を に設定しようとしましたがBorderStyle、通常のフォームとしてレンダリングされます。MDIChildrenbsSizeToolWin

0 投票する
5 に答える
1613 参照

c# - MDILayout を使用した Windows フォームの順序付け

C# と Windows MDI フォーム アプリケーションを使用して、非常に具体的な問題があります。「左」と「右」の 2 つ (またはそれ以上) の画像をユーザーに表示したいと考えています。画像の名前はユーザーから隠され、ユーザーは好みの画像を選択します (これは医用画像の品質に関する研究の一部であるため、ユーザーは、関連する可能性のあるキャプチャ パラメーターから盲目にする必要があります。イメージ名)。実際の名前を表示する代わりに、'image 0' や 'image 1' などの代替名がユーザーに表示されます。

標準MDILayout.TileVerticalまたはを使用するたびにTileHorizontal、画像が逆の順序で読み込まれます。たとえば、画像0と画像1がある場合、それらは表示されます

画像 1 画像 0

3つ以上の画像は次のようになります

2 1 0

また

3 2

1 0

などなど。問題は、ユーザーがこの右から左への順序に混乱していることです。別のダイアログ ボックスでどちらの画像が優れているか (または表示された画像を評価するか) を尋ねると、画面上の画像の順序とその順序を常に混同します。ダイアログボックスの画像の。つまり、評価ダイアログで画像 ​​0 1 2 3 などを注文すると、表示されている画像 3 は MDI 親ウィンドウの画像 0 であり、画像 2 は画像 1 であるなどと想定されます。左から右に読み取られます。 、画像は右から左に表示されています。画面上の順序を反映するために評価ダイアログ ボックスのタブの順序を変更すると、さらに混乱し (「画像 3 が画像 2 の前にあるのはなぜですか?」)、結果が間違った順序で表示され、通常は使用できなくなります。

MDILayoutでは、 inを使用して表示されたウィンドウの順序を強制するにはどうすればよいC#でしょうか? 手動で行う必要がありますか、それともレイアウト マネージャーに送信できるスイッチはありますか?

ありがとう!

0 投票する
1 に答える
1215 参照

.net-2.0 - 最大化された MDI フォームで MessageBox がフォーカスを失う

ユーザーが複数の子フォームを開くことができる MDI アプリケーション (.NET 2.0 で記述) があります。子フォームは常に MDI 親内で最大化されます。MDI の親が最大化されているときに MessageBox.Show を実行しようとすると、MessageBox が表示されません。Alt-Tab を実行すると (または Alt キーを押すだけでも)、MessageBox が前面に表示されます。

そもそもその吸盤を表示させる方法はありますか?

これは、MDI の親が最大化されている場合にのみ問題になります...

0 投票する
1 に答える
2226 参照

.net - MDIParentタイリングの子供たち

mdi親のすべてのフォームの子を簡単に並べて表示する方法はありますか?Windowsが提供する機能のほとんど、タイルカスケードを探しています。誰もが簡単な方法を知っていますか?

0 投票する
3 に答える
7896 参照

vb.net - VB.Net MessageBox.Show() がフォームを背面に移動します

MDI アプリケーションがあります。MessageBox.Show() を使用してメッセージ ボックスを表示すると、メッセージ ボックスを閉じると、開いているすべてのウィンドウの背後にアプリケーション全体が表示されなくなります。

コードは特別なことをしていません。実際、MDI 子フォーム内からメッセージ ボックスを呼び出す行は次のとおりです。

Me.BusinessUnitTypeName() は、メンバー変数の値に応じて文字列を返す読み取り専用のプロパティ ゲッターです。このプロパティには副作用はありません。

何か案は?

0 投票する
4 に答える
7762 参照

delphi - Delphi Mdi アプリケーションの親ウィンドウで KeyDown イベントを使用する

子ウィンドウにフォーカスがある場合でも、Delphi (2007) MDI アプリケーションの親ウィンドウで KeyDown イベントを機能させるにはどうすればよいですか?

MDI アプリケーションでヘルプ画面を表示するショートカット キー (F1) を実装したいと考えています。KeyDown プロシージャを MDI 親ウィンドウに追加し、親ウィンドウと子ウィンドウの両方で KeyPreview を有効にしましたが、機能しません。期待される。

Parents KeyDown コードにブレーク ポイントを配置すると、子ウィンドウが開いていなくても実行されないことがわかります。しかし、同じコードを子ウィンドウに追加すると、正常に動作します。

コードを25以上のフォームに追加すると少し無駄になるため、子ウィンドウにフォーカスがある場合でも、親ウィンドウにキーの押下を受け取る方法はありますか?

0 投票する
2 に答える
4886 参照

windows - Windows フォーム、親フォームからプロパティを取得

少し問題があります。親フォームにデータテーブルがあります。datatable プロパティを取得してチェックボックス リストを作成するダイアログ ボックス フォームを開きます。これは、それらの列をエクスポートするために使用されます。しかし、アプリケーションを実行すると、parentform プロパティが null になります。親とダイアログボックスのフォームで設定しようとしました(ShowDialog()が呼び出された場合、これは自動的に行われると思いました)。

誰かが見て、私が間違っているところを見ることができますか? ダイアログボックスから:

親フォームから:

0 投票する
1 に答える
838 参照

.net - .NET WinForms で最大化された MDI 子の複数のコントロール ボタン

MDI バグ http://www.dicu.com/pics/bug_mdi.jpg

これは、MDI の子を自動的に最大化しようとしたときに得られるものです。コードは次のようなものです。

なぜ複数のコントロールボタンを取得するのですか?

0 投票する
5 に答える
5257 参照

delphi - デルファイアプリケーションに現在モーダルウィンドウがあるかどうかを確認するにはどうすればよいですか?

Delphi MDIアプリケーションでタイマーを実行していますが、バックグラウンドで何かが変更された場合に、タイマーを使用してメッセージをポップアップ表示したいと思います。ただし、アプリケーションのフォアグラウンドにモーダルダイアログがある場合、ユーザーはそれについて何もできなかったため、そのメッセージがポップアップ表示されないようにします。

では、私が知りたいのは、アプリケーションにモーダルダイアログが存在するかどうかをどのように確認できるかということです。

0 投票する
2 に答える
5471 参照

c# - ToolStrip が別の ToolStripContainer にドッキングされないようにするにはどうすればよいですか?

さまざまな種類の子ウィンドウを開くことができる MDI アプリケーションがあります。同じ種類の子ウィンドウの複数の (ただし異なる) インスタンスを開くことができます。(例: 子ウィンドウ タイプ A の 3 つのインスタンスと子ウィンドウ タイプ B の 2 つのインスタンスを開くことができます。5 つのウィンドウはすべて別個のエンティティであり、ユーザーが同じデータを明示的に複数のウィンドウにドラッグしない限り、データを共有しません。) 各子ウィンドウ1 つ以上の ToolStrips を持つ ToolStripContainer があります。どうすれば防ぐことができますか:

  1. ユーザーがタイプ A の子ウィンドウからタイプ B の子ウィンドウの ToolStripContainer に ToolStrip をドラッグすることから?
  2. ユーザーは、子ウィンドウ A の 1 つのインスタンスから同じタイプのウィンドウの別のインスタンスの ToolStripContainer に ToolStrip をドラッグすることはできませんか?

ユーザーがタイプ A のインスタンス 1 からタイプ A のインスタンス 2 に ToolStrip をドラッグし、インスタンス 2 でいくつかのものを選択してから、ツールバーのボタンをクリックして、他のウィンドウに奇妙なことが起こるのを防ごうとしています。 . 同様に、タイプ A のウィンドウからタイプ B のウィンドウに ToolStrip をドラッグするのは意味がありません。アクションはそのタイプには適用されませんが、ユーザーにはすべて問題ないように見えます。ドラッグ。

ControlAdded イベントに独自のハンドラーを追加するのと同じくらい簡単ですか、それとももっと良い方法がありますか? .NET 3.0 で WinForms を使用しています。

編集:再現手順

  1. 新しい Windows アプリケーション プロジェクトを作成します。
  2. 新しいユーザー コントロールを追加します。1 つのボタンを持つ 1 つの ToolStrip を含む ToolStripContainer をコントロールに与えます。
  3. 手順 2 を繰り返して、UserControl2 クラスを作成します。
  4. ソリューションをコンパイルして、UserControl1 と UserControl2 がツールボックスに表示されるようにします。
  5. UserControl1 と UserControl2 をフォームにドラッグします。境界線がどこにあるかがわかるように境界線を設定します。
  6. アプリを実行します。
  7. ToolStrip を UserControl1 のコンテナーからドラッグして、UserControl2 のコンテナーにドロップできるようになりました (UC1 にゼロの ToolStrips と UC2 に 2 つの ToolStrips を残します)。
  8. ここで、UserControl1 のコードにしかアクセスできないとします。ユーザーが ToolStripContainer のインスタンスから ToolStrip をドラッグできないようにするにはどうすればよいですか?