問題タブ [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.
vb.net - VB.NET MDI の子がタイトル バーのクリックのみにフォーカスする
MDI 子フォーム (または任意のコントロール) 内の任意の場所をクリックすると、そのフォームがフォーカスされると想像できます。しかし、私のアプリケーションでは、タイトルバーをクリックすることによってのみ MDI 子にフォーカスすることができます。これは、ユーザー側の異常な動作です。私のフォームはコントロールまたはパネルで満たされているため、単に「フォームをクリックする」という贅沢はありません。しかし、その中のどこかをクリックすると、フォーカスされます。
他の人も同様に問題を抱えているようですが、私はこの問題の解決策を見つけることができませんでした.
c# - 一意の識別子を持つ MDI フォームで子フォームの複数のインスタンスを開く
私のアプリケーションでは、一意の識別子を持っている間、フォームの新しいインスタンスを子として複数回開くことができるようにしたいと考えています。
現時点では、私はこのようにしています:
現時点で 2 つの問題があります。
- MDIForm (mainForm) から、現在メイン フォームで開いている子フォームの Text プロパティによって、BringToFront や Close などをプログラムで実行できる可能性はありますか?
- 子フォームの一意の名前付けのこの方法が機能していないことを発見するのは天才ではありません。(同じフォームの) 5 つの子フォームを開くと、 のように番号が付け
Console #1
られConsole #5
ます。しかし、閉じConsole #4
て、新しいフォーム (同じフォームの!) を開くと、名前が付けられConsole #5
、同じ名前の 2 つのフォームが作成されます。これを修正できれば、フォームをユーザーが区別できるようになるのは素晴らしいことです。
そんな時のヒントをお待ちしております!
c# - 別のフォームがそのMDI親で実行されているかどうかを子フォームから確認するにはどうすればよいですか?
MDIフォームがあります。このフォームの実行中の子内で、別のフォームが実行されているかどうかを確認したいと思います。何かのようなもの:
MyForm2
探しているフォームの名前(クラス名)はどこにありますか。コンパイラは「この時点ではクラス名は無効です」のように言います。
これを正しく行う方法は?そのmomemntで「MyForm2」の複数のインスタンスを実行できることに注意してください(インスタンス名が異なります!)
c# - MDI子フォームを最大化する
従来のWinFormsMDIアプリケーションに取り組んでいますが、子フォームを希望どおりに動作させるのに問題があります。私の目的は、子フォームを常に最大化(ドッキング)することです。
問題は、最大化/サイズ変更ボタンを設定MaximizeBox
した場合でもfalse
、MDIツールストリップに表示され、ユーザーが子フォームのサイズを変更(ドッキング解除)できるようにすることです。これを回避する唯一の方法はに設定ControlBox
することfalse
ですが、閉じるボタンが消えます(それは私が望むものではありません)。
サイズ変更イベントが発生したときに、修正FormBorderStyle
済みの子フォームを最大化することをすでに試みましたが、どのアプローチも機能しませんでした。
私が見逃した超秘密の財産はありますか、それとも不可能ですか?
よろしくお願いいたします。
アップデート
私は自分の子フォームを処理するための卑劣な方法を書きました(@rfresiaのおかげで)、それは同じ問題に遭遇した他の人を助けるかもしれません:
vb.net - VB.NET MDI フォーム内で外部アプリケーションを開く
VB.NET MDI フォーム内で notepad.exe などの外部アプリケーションを開く必要があります。また、この実行中のコピーが常に 1 つだけであることを確認する必要があります。
以下のコードを使用しましたが、まったく何もしません。SetParent が宣言されておらず、findWindow が宣言されていないというエラーが表示されます
これは、1 つのインスタンスのみが実行されていることを確認するために使用したコードです。
このコードは notepad.exe を開いていますが、以前のインスタンスをチェックしていません。ボタンをクリックするたびに、新しいメモ帳が開きます
c# - MDI子フォームでFormClosingイベントが呼び出されない
新しいフォーミュラを開くときに、フォーミュラを閉じようとしています。フォーミュラを閉じるときに、クロージングイベントでいくつかの特別なロジックを処理したいと思います。ただし、FormClosingイベントでもClosingイベントでも、抽象基本クラスでも、指定された手動で添付されたイベントでも、終了イベントが呼び出されることはありませんform_FormClosing
。
xをクリックしてフォームを手動で閉じると、すべてのイベントが正常に発生します。Close()
メソッドの呼び出しは失敗します。
私の問題を解決するための推奨事項はありますか?
MdiParent:
抽象汎用mdi子フォーム:
c# - ユーザーが子フォームの最大化ボタンを押したときに mdichild フォームのサイズを変更する方法
最大化ボタンを押したときに mdichild フォームのサイズを変更し、親フォームにドッキングしないようにしたいだけです。
私の最初の MDIChild サイズは 100,100 で、最大化ボタンを押すと。MDIChild のサイズを 500,500 に変更するだけです。私の問題は、最大化ボタンを押すと、mdiparent フォームにドッキングされ、mdiparent フォームの残りのスペースがすべて埋められることです。
ちなみに、私の MDIParent サイズは 800,800 なので、MDIChild は MDIParent を超えません。
c# - WinForms MDI 子フォーム
MDI 親として設定されたフォーム frmMain があります。その中で、別のフォーム frmSearch を親内の子フォームとして開くことができます。しかし、私が問題を抱えているのは、ユーザーが frmSearch をクリックして 3 番目のフォーム frmCase を開き、この 3 番目のウィンドウを親フォーム frmMain 内でも開くことができるようにしたいということです。
これまでのところ、私はfrmMainを持っています:
そして、子フォーム frmSearch で:
しかし、3 番目のフォーム (frmCase) は親フォーム (frmMain) の外で開きます。frmCase の MDIParent プロパティを設定する必要があることはわかっていますが、既に開いている frmMain を参照する方法がわかりません。
アドバイスをいただければ幸いです。
vb.net - MDIParentの右下隅にMDIChildフォームを配置するにはどうすればよいですか?
ばかげた質問のように見えますが、私は次のことを試しました(「私」はMDIParentフォームです)。
しかし、それは機能しません。
アイデア?
c++ - ユーザーがビューを切り替えたときにどのように通知されますか?
MDI アプリケーションでは、ユーザーがビューを切り替えるときに何かを更新する必要があります。これが起こったときに実現するために処理するのに最適なメッセージは何ですか? 私のアプリケーションでは、ドキュメントにはビューが 1 つしかありませんが、論理的には、ドキュメント間の切り替え時に通知を受け取りたいと考えています。