問題タブ [mdichild]

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 投票する
3 に答える
7896 参照

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

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

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

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

何か案は?

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

c# - C# での MDI 子フォームの問題

1 つの MDI 子フォームを最大化すると、すべての MDI 子フォームも最大化されます。1 つのフォームを最大化し、別のフォームを最大化しないことは可能ですか?

前もって感謝します。

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

winforms - Winform MDI クライアント領域のサイズ/場所

MDI フォーム内には、mdi 子フォームをホストするクライアント領域があります。その領域の広さを知るにはどうすればよいですか? これまでのところ、親の潜在的なクライアント領域 (mdiparent.ClientRectangle) の合計サイズを見つけてから、クライアント領域から離れているツールバーなどのコンポーネントのサイズを差し引くことです。より良い方法はありますか?

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

.net - 生成ではなく MDI 子フォームの呼び出し

ネストされた 3 つの子を持つ MDI フォームがあります。現時点でできることは、新しいフォームを表示することだけです。例: メニュー ボタンを押すたびに、新しい子フォーム (Form1) が作成されます。ここで、同じメニュー ボタンを 2 回目以降に押すと、新しいForm1 が作成され、前のボタンの上に表示されます。

私が望むのは、イベントハンドラーがトリガーされるたびに (親フォームの menu item_click)、完全に「新しい」子フォームが生成される (新しいウィンドウがポップアップする) 代わりに、適切な子フォームをプルアップすることです。トリガーに付いているもの。

オブジェクトの再利用のようなものだと思います。

どんな助けでも大歓迎です。

私が使用しているコードサンプルは次のとおりです。

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

c# - タブ付きMDIインターフェイスを作成する

私はC#2005を使用してWindowsアプリケーションを開発しています。タブコンテナを使用して子フォームを表示することを計画しています。メニューストリップを使用してメニューを表示し、MainMenuフォームのIsMDIContainer=trueプロパティを設定しました。MainMenuフォームにはタブコントロールも含まれており、すべての子フォームをタブコントロールのタップページとして表示する予定です。

これまで、ユーザーがメニューオプションを選択したときにタブページを追加することができました。しかし、タブページ内に子フォーム自体を表示する方法がわかりません。

メニュークリックイベントで次のコードを使用しました。

タブページに子フォームを正しく表示するにはどうすればよいですか?[ファイル]->[新しいタイプのアプリケーション]が必要ありません。メニュークリックイベントで同じ(空白の)フォームが表示されます。私のメニューオプションは、それぞれ固有の/異なるフォームを表示する必要があります。

ありがとうございました。

ラリットクマールバリク

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

c# - TabPage を削除する

C# 2005 を使用して Windows アプリケーションを作成しています。Menustrip を含む MDIForm (frmMainMenu) と

タブ コントロール。私の ChildForm は frmPurchaseEntry です。ユーザーが特定のメニュー オプションをクリックすると、新しい TabPage が作成され、

子フォームは TabPage 内に表示されます。

MDIForm (frmMainMenu) の MenuClick イベントで次のコードを使用しています。

ここまではOKです。しかし、ChildForm が閉じているときに TabPage を削除できません。以下のコマンドのみ

ChildForm を閉じますが、空の TabPage はまだ残っています。

TabPage を削除する構文は次のとおりです。

しかし、ChildForm から MDIForm の TabControl にアクセスできません。TabControlにPublic修飾子を使おうとしたのですが、

まだ ChildForm から公開されていません。

ChildForm から特定の TabPage (特定の Tab Text を含む) を削除して破棄するにはどうすればよいですか?

ありがとうございました。

ラリット・クマール・バリク

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

windows - 別のアプリケーション VB.NET の MDIChild を最大化する

別のアプリケーションのウィンドウを最大化する必要があるアプリケーションを作成しています。Spy++ では、動作方法は -> "Working Model - Untitled1" -> "MDICloient" -> "Untitled1" です。

ツリー表示はこんな感じ。

Untitled1 を最大化する必要がありますが、方法がわかりません。findwindow "Working Model - Untitled1" を試してから、get と setwindowplacment を使用したところ、うまくいきました。次に、「Untitled1」でfindwindowexを使用しましたが、最大化されませんでした。ここで何が間違っていますか?mdi ウィンドウを最大化できると確信しています。「Untitled1」ウィンドウ自体には、キャプション バーに 3 つのボタン (- + X) があります。

ありがとう

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

c# - Windows フォーム - MdiClient スクロール バーが期待どおりに自動的に表示されない

C# で Windows フォーム アプリケーションを作成しています。これにより、いくつかの Windows ユーティリティ (CMD プロンプト、レジストリ エディター、イベント ビューアーなど) を起動して、メイン フォームの MdiClient コントロールに配置できます。

子ウィンドウが MdiClient の境界を超えたときに MdiClient コントロールのスクロール バーが自動的に表示されないことを除いて、すべてがうまく機能しています。子ウィンドウがウィンドウ フォームである場合、MdiClient のスクロール バーが期待どおりに自動的に表示されることがわかります。いくつかの複雑な回避策を含め、多くのことを試しました..そして、私が完全に見落としている何かがあるに違いないと考え始めています.

以下にいくつかのサンプルコードを添付しました。

以下のスクリーンショットは、CMD ウィンドウが移動され、その境界が MdiClient の境界の外側にある場合、スクロール バーがないことを示しています。

画像については、次のリンクを参照してください: http://picasaweb.google.com/lh/photo/75rMVJMCWRg_s_DFF6LmNg?authkey=Gv1sRgCIKRlsu8xuDh8AE&feat=directlink

どんな助けでも大歓迎です!

ありがとう、シェイディ

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

c# - 最後に閉じられた MDI 子フォームがガベージ コレクションされないのはなぜですか?

アプリケーションでメモリ リークの問題が発生しました。次の簡単な例で問題の 1 つを再現することができました。

レプリケーションのセットアップ

1) オブジェクトの作成/破棄を追跡するために使用される次のヘルパー クラスを作成します。

2) 3 つのボタンを持つ MDI フォームを作成します。最初のボタンは、次のように新しい MDI 子を作成します。

2 番目のボタンを使用して同じことを行いますが、非 MDI 子フォームを使用します。

3 番目のボタンはガベージ コレクションに使用され、ライブの TestObject インスタンスの数が表示されます。

レプリケーションの手順

1) [MDI フォームを開く] ボタンをクリックし、MDI フォームを閉じてから、[カウント] ボタンをクリックします。Count: 1 が返されます。MDI 子フォームとそれが参照するオブジェクトは、ガベージ コレクションされませんでした。何かがまだそれへの参照を持っている必要があります。

また:

[MDI フォームを開く] を 3 回クリックし、3 つのフォームをすべて閉じてから、カウント ボタンをクリックします。Count: 1 が返されます。最後に閉じられた MDI 子フォームがガベージ コレクションされていないようです。

カウンターケース:

1) [非 MDI フォームを開く] をクリックして閉じます。次に、カウントボタンをクリックします。Count: 0 を返します。フォームとオブジェクトはガベージ コレクションされています。

回避策

これを行うことで、この問題を回避できます。

ガベージコレクションの前。これにより、このダミー フォームが最後に閉じられた MDI 子フォームになり、他のフォームをガベージ コレクションできるようになりますが、なぜこれを行う必要があるのでしょうか。何が起こっている?

また、フォームの開閉でちらつきが発生するため、少し見苦しく、かなりハッキーに見えます。

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

c# - 限られた領域での子 mdi の最大化

mdicontainer で、上部にメニュー ストリップがあるフォームがあります。MDI コンテナーに子フォームを追加し、子を最大化すると、メニューストリップ上で最大化されます。メニューストリップの下で最大化するように子を制限する方法を知りたいです。どんな助けでも大歓迎です。