問題タブ [showdialog]
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.
wpf - 親ウィンドウの背後にある ShowDialog()
ShowDialog()
WPF (MVVM) アプリケーションでモーダル ウィンドウを開くためにwithを使用しWindowStyle = WindowStyle.SingleBorderWindow;
ていますが、Windows タスクバー (Windows 7) を使用して親ウィンドウに移動できます。
私はここで答えを見つけました: WPF and ShowDialog()しかし、「常に一番上にある」ツールウィンドウは必要ないため、私には適していません。
前もって感謝します
c# - showDialogでウィンドウを開くと、TextBlockがテキストではなくウィンドウの下に表示されます
この奇妙なwpfの問題があります。画像付きのウィンドウ(フルスクリーンnm)があります。次のようになります。
このウィンドウの上にShowdialogを使用して新しいウィンドウを開きます。これはフルスクリーンではありません(ポップアップのように見えますが、ウィンドウです)。コードは次のようになります。
開いているウィンドウで、これを使用して「ポップアップ」を中央に配置します。
私はこのようなものを手に入れます(私はそれをトリミングしました、ウィンドウは少し大きいです):
テキストブロックが次のように定義されている場合:
今、私はこれを行うボタンを持っています:
しかし、私が期待したもの(テキストが変更される)の代わりに、私はこの奇妙なものを手に入れました:
ご覧のとおり、私のtextBlockの代わりに、リアウィンドウからの画像がわずかに表示されています!
ここで何が起こっているのですか??助けてください!
ポップアップXAML:
c# - varコンテンツを含むWPF showdialogテキストボックス
私は次のことを成し遂げようとします:
通知メッセージを設定できる複数のボタンがある WPF アプリケーション。ボタンによって、異なるメッセージを設定できます。
私がしたことは、私がこのコードを入れたメッセージボタンでした:
これにより、新しい WPF ウィンドウが開きます。ここでは、テキスト ボックスと終了ボタンのみが表示されます。このメッセージ ウィンドウを終了すると、メッセージがパラメーターに保存されます。
しかし、ここにトリックがあります。このメッセージ ウィンドウを複数の通知に使用したいのですが、アプリケーション内の文字列に既にテキスト コンテンツがある場合は、テキスト ボックスにテキスト コンテンツが表示されます。
例:メインアプリには、通知をオンにするボタンAとBがあります。ボタンAをクリックすると、showdialogがポップアップし、テキストボックスに「ボタンAをクリックしました」が表示されますクリックされたのがボタンBの場合、「ボタンBをクリックしました」と表示されます
したがって、ShowDialog で追加情報を送信する必要があるため、それぞれにメッセージウィンドウを使用できます。誰か助けてくれませんか?
私が欲しいものをきちんと説明するのは少し難しいと言わざるを得ないので、私が自分自身を十分に明確にしたことを願っています.
編集したがって、文字列パラメーターの内容(正確には、Properties.Settings.Default.XXX)をカウンターメッセージウィンドウにあるテキストボックスに表示したい
c# - 子DialogButtonが閉じられた後、親DialogButtonを開いたままにする
ShowDialog() を使用した後、閉じるまで親フォームを開いたままにしておくことに問題があります。
私はこれについて試してきましたが、取得できませんでした。私が見逃していたかもしれない単純なものがあると思います。これを登録するのを手伝ってくれませんか?
問題は、フォーム 1 があり、ボタンを 1 つ押すとフォーム 2 が開くことです。Form 2 でいくつかの検証を行い、検証を確認します。検証に合格しない場合は、[再試行] と [キャンセル] を使用して DialogBox フォームを開きます。再試行を押すと、コントロールはフォーム 2 に戻り、フォーム 2 は閉じません。[キャンセル] を押すと、DialogBox フォームと Form 2 の両方が閉じます。今、私が何を押しても、両方のフォームが閉じます。
オンラインで調べましたが、解決策が見つかりませんでした。この解決策を実行しましたが、両方のフォームがまだ閉じています。 ネストされた子ダイアログを閉じると親ダイアログも閉じるのはなぜですか?
私のコード:(サンプルシナリオ)
フォーム 1:
フォーム 2:
c# - showDialog()は呼び出しなしで結果を表示します
メッセージボックスにウィンドウを表示するための次のコード行があります。
true
問題は、それを閉じると、別のMessageBoxがまたはで始まるfalse
ことですが、そうするように指示したことはありません。どうすれば修正できますか?
より関連性の高いコードは次のとおりです。
c# - [OK] ボタンがクリックされたときに ShowDialog() が返されないようにする
[OK] ボタンがクリックされたときに閉じないようにしたいダイアログがありますが、[OK] ボタンの代わりに AcceptButton プロパティが none に設定されていても返されます。閉じないようにする最善の方法は何ですか?
.net - ShowDialog が親フォームからフォーカスを削除しないようにする
私はマルチスレッド TDI UI に取り組んでいます (興味がある場合は C1 DockingTabs を使用してください)。これまでのところ、各ウィンドウを個別のスレッドで開き、SetParent Win32 API を使用してウィンドウを適切なタブ内に配置することができました。また、モーダル ダイアログをタブ内にも表示し、他のタブの動作を妨げないようにすることもできました (ダイアログ フォームの Shown イベントにハンドラーを追加して、SetParent を再度呼び出すことにより、オンとオフの切り替えに多少手間がかかります)。タブ内のフォームの TopLevel ですが、機能します)。
ここで、少し厄介なことが起こっているのは、ダイアログが開いていることです。これにより、TDI 親フォームからフォーカスが削除され、フォーカスがすぐに戻されます。表示する前に SetParent を呼び出すと、親を持つフォームにモーダル ダイアログを表示できないため、例外が発生します。ウィンドウアニメーションのスライド/フェードインとフェードアウトを、タブ内に収まるまでサイズを 0,0 にすることで回避できましたが、フォーカスのフリックオフとバックを停止する方法がわかりません。メインの親フォーム。
2つの可能なアプローチがあると思います:
- フォーカスを失ったように見えるウィンドウ効果を無効にします(ウィンドウメッセージをブロックする可能性がありますか?)
- 実際にそれを止めてフォーカスを失う
これは少し変わったクエリであることに感謝します。助けていただければ幸いです。
編集:
演習のポイントを明確にするために、各タブが事実上独立しているタブ ベースの UI を用意しました。何かが ShowDialog を呼び出すたびに、その 1 つのタブだけでなくアプリ全体がブロックされるというエンド ユーザーからの苦情がありました。これを回避する唯一の方法 (Google Chrome のようなマルチプロセスを除く) は、各タブに個別の UI スレッドを提供し、タブ内にダイアログをロードして、ユーザーが引き続き他のタブにアクセスできるようにすることです。ハッキングの一部をある程度取り除くことができ、問題のほとんどを修正することができました (もう少しプレイしただけです)。メイン フォームで WM_NCACTIVATE メッセージをブロックすることで、私が尋ねた質問を実際に修正することができました。私は私だと思います アクティブ化するかどうかを決定するには、アクティブ化されたフォームがこのダイアログの子であるかどうかを検出する必要があります。解決しようとするちらつきもありますが、見た目はずっと良くなっています。コードを投稿しますが、関連するフォームが 3 つあるため、プロジェクトをアップロードしないと少し面倒です。誰かが興味を持っている場合は、それを減らすことができるかどうかを確認しますか?
私は現在、概念実証としてそれをいじっているだけです。これが機能するようになったら、既存のアプリケーションに改造する必要があります。そこから本当の楽しみが始まります! 私は TDI の側面を制御するためのフレームワークを持っているので、その点からはかなり単純なはずです。本当の悪夢は、本質的にスレッドセーフではない共有リソースがいくつかあるため、さまざまなスレッド間で発生する可能性のある同期の問題を解決するために全体を監査することです。
.net - ShowDialog()なしでフォームが閉じるのを待つ方法は?
私のプログラムでは、OAuthにWebBrowserコントロールを使用しています。フォームにありvk_auth_window
ます。したがって、コードでは。を呼び出しますvk_auth_window.WebBrowser1.Navigate(vkauthurl)
。認証が成功した場合、私は黙ってトークンを取得しますが、ユーザーが認証されていない場合、ユーザーvk_auth_window
名とパスワードを入力するためのフォームが表示されます。これを確認するには、_DocumentCompleteイベントをキャッチし、正しいURLを確認します。ユーザーが認証を完了するか、認証フォームを閉じるまで、他のコードを実行する必要はありません。ShowDialog()はこのトリックを実行しますが、WebBrowserコントロールのユーザー名とパスワードのフィールドからカーソルを隠します。そこで、変数を導入Dim showform as Boolean=True
し、_DocumenCompleteイベントからFalseに設定し、メインコードでは無限ループを使用します。
ただし、スレッドがスリープするため、ユーザー入力が遅くなります。そして、それらを削除すると、CPUにかなりの負荷がかかります。フォームが閉じるのを待つより良い方法はありますか?それは何ですか?
wpf - WPFは所有者ウィンドウの使用を防ぎます
C# で WPF を使用しています。フルスクリーンのウィンドウがあります。このウィンドウで、ダイアログを開きます。マイ ダイアログは、設計が異なり、この所有者を中心とする別のウィンドウです。
最初のダイアログ中に、このダイアログを閉じて別のダイアログを開くボタンがあります。私はこれを次のように達成します:
最初のダイアログが Show または ShowDialog を使用して呼び出されても、2 番目のダイアログは TopMost ではありません。つまり、後ろに表示されているメイン ウィンドウをクリックできます。
私が得たのは、このダイアログがメインウィンドウの中央に開いているとき、ユーザーはメインウィンドウにある(ダイアログでカバーされていない)背面ボタンをクリックできるということです。
どうすればそれが起こらないようにブロックできますか?
c# - Form.ShowDialogは、ループで実行しているときに1回だけ開きます
私はForm1を持っていて、ループを実行するときに別のフォーム(Form2)を開く必要があります。問題は、ループを実行すると、Form2が初めて表示され、Form2が自動的に開いたり閉じたりすることです。
それを精査するために、私はこの単純なコードを書きましたが、それは機能しません:
Form2の場合:
助けてくれてありがとう!