問題タブ [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.

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

c# - フォームに ShowDialog() フォームが開いているかどうかを確認する方法は?

別のスレッドからアクセスされるいくつかのプロパティ/メソッドを持つフォーム MainForm があります。

ある時点で、ShowDialog() を使用して AuxForm フォームを開くと、そのモーダル フォームが開いている間に、他のスレッドが引き続き MainForm のプロパティを変更することがあります。これはすべて望ましいことです。

別のスレッドからアクセスされるメソッドの 1 つで、いくつかのコードを実行する必要がありますが、モーダル AuxForm が開いていない場合のみです。これを (.NET WF フォーム プロパティを使用して) チェックする方法はありますか、それともフラグ変数を使用する必要がありますか?

注: これらのプロパティ/メソッドはいずれもコントロールを変更しません (したがって、Invoke は必要ありません)。

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

.net - Windows フォームと ShowDialog の問題

ボーダレスWindows フォームアプリケーションを使用しています。

メイン ウィンドウは、他のフォーム (はいまたはいいえをクリックできる単純なダイアログ) を作成しShowDialog()ます。作成されたすべてのダイアログはタスクバーに表示されません。私のアプリケーションには、アプリケーションをフォーカスするタスクバー エントリが 1 つしかありません (ダイアログが開いている場合は、そのダイアログがフォーカスされています)。ALT+を使用TABして開いているすべてのウィンドウに切り替えると、エントリも 1 つしか表示されません。

ただし、アプリケーションがフォーカスを持っていないときにダイアログが作成された場合 (たとえば、ユーザーが長時間実行されるタスクを開始し、別の作業を開始し、バックグラウンドにいる間にアプリケーションが「タスクが完了しました.. .") アプリケーションに戻りたいのですが、状況がおかしくなっています。

  • タスクバーをクリックしてアプリケーションをフォーカスすると、(ダイアログではなく) メイン ウィンドウがフォーカスされます。
  • メイン ウィンドウを使用できません (まだモーダル ダイアログが開いているため)。
  • Windows 7 ALT+TABプレビューではダイアログが表示され、タスクバーのマウスオーバー プレビューではメイン ウィンドウが表示されます (通常の動作では、両方ともメイン ウィンドウの前にダイアログが表示されます)。
  • アプリケーションを再度使用可能にする唯一の方法は、エントリにALT+TABを入力してモーダル ダイアログを閉じることです。
  • ALT+のみを使用するTABと、ダイアログが前面に表示され、メイン ウィンドウはまだ背景にあります。

それが起こらないようにする方法はありますか?何をすべきかはわかっていますが、ほとんどのお客様は、メイン ウィンドウが応答しないため、アプリケーションがクラッシュしたと考えています。

アップデート:

解決策は、トップ レベル ウィンドウをShowDialog()メソッドに渡すことです (ほとんどの場合、"this" になるフォームで使用する場合)。

コード全体をリファクタリングしたくなかったので、すべてのフォームが "MyCustomFormBase" から継承されているため、ここでは非常にうまく機能する小さなソリューションを示します。

私が使用するメインウィンドウのコンストラクターで

一度。半日のリファクタリングに役立ちました;)

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

wpf - MEFコンポーネントのShowDialogは1回だけ機能します

WPFウィンドウを作成し、それをMEFエクスポートにしました。

MEFインポートでShowDialogを1回実行できますが、MEFコンポーネントが最初のShowDialogによって閉じられたため、2回目は中止されます。

ShowDialogの繰り返しを許可するために何ができますか?

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

silverlight - Silverlight 4 にアップグレードすると System.Security.SecurityException が発生する

ファイル ダイアログを開こうとしていますが、ShowDialog を呼び出すと例外が発生します。このコードは常に正常に機能していましたが、Silverlight 4 にアップグレードすると何らかの問題が発生したと思います。

コード:

例外:

正しいファイル名とファイルサイズを取得しましたが、ディレクトリとディレクトリ名に関する情報がないため、ディレクトリのオプションを取得するのは問題のようです。

0 投票する
7 に答える
8435 参照

c# - Windows フォームでのクロススレッド呼び出しの何が問題になっていますか?

Windows フォーム アプリケーションで問題が発生しました。

フォームは別のスレッドから表示する必要があります。したがって、フォームクラスには次のコードがあります。

今、これを実行するたびInvalidOperationExceptionに、行に an がスローされますthis.ShowDialog();:

「クロススレッド操作が無効です: コントロール 'SampleForm' は、それが作成されたスレッド以外のスレッドからアクセスされました。」

このコードの何が問題になっていますか? クロススレッド呼び出しを行う有効な方法ではありませんか? と特別なことはありShowDialog()ますか?

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

.net - メインフォームのないWinformsアプリケーション-ダイアログは上部に表示されません

私は実際にはメインフォームを持たないwinformsアプリケーションを持っています-それは単なるファイル処理ツールなので、実際には必要ありません。

アプリケーションが起動すると、最初にOpenFileDialogを使用してファイルが選択されます。次に、Showdialog()を使用してダイアログボックスが表示され、選択したファイルの処理方法に関するいくつかのオプションが表示されます。最後に、ファイルの操作中に進行状況バーフォームが表示され、アプリケーションが終了します。

問題は、Visual Studioからデバッグしているときに、中央のフォームがVisualStudio自体などの他の開いているウィンドウの上に表示されないことです。ただし、コンパイルされた実行可能ファイルを実行すると、正常に動作するようです。

通常、ShowDialogの結果、ダイアログが後ろに表示される場合、解決策はShowdialog(owner)呼び出しを使用することです。ただし、話すメインフォームがない場合は、設定する所有者がありません。

では、OpenFileDialogが自動的に行うのと同じ方法で、ダイアログボックスを他のウィンドウの上に表示するにはどうすればよいですか?

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

c# - ShowDialog() と同様に、MDI 子が閉じるのを待ちます。

私はモーダル ダイアログを使用したい MDI アプリケーションを持っています...はい、MDI の場合、これは原則に少し反することを知っています...とにかく、私のメイン ウィンドウは「ワークスペース」のようなものです。それから他のもの。

トピックに戻りますが、MDI-Child が閉じるのを待つにはどうすればよいですか? いくつかのコード例:

MySearchForm はメイン ウィンドウの MDI 子であるため、ShowDialog() は使用できませんが、ブロック メソッドを使用して、ウィンドウが閉じて結果が返されるのを待ちたいと考えています。別のスレッドで呼び出して、そのスレッドが終了するのを待つことを考えましたが、それも MDI では機能しません。

誰かがアイデアを持っていますか?

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

android - ダイアログが表示されているかどうかを確認したり、同じタイプの複数のダイアログを表示したりするにはどうすればよいですか?

showDialog//でダイアログを管理していdismissDialogますremoveDialog

したい:

スタックのようなものでいくつかのダイアログを表示します。

a)最初のダイアログはshowDialog(DIALOG_TYPE)

b)次のダイアログが既存のダイアログの上に表示されます

これで、を使用して最初のダイアログを表示することしかできなくshowDialogなり、次のダイアログは無視されます。

最後のダイアログを表示します。

a)最初のダイアログはshowDialog(DIALOG_TYPE)

b)アプリケーションは、ダイアログが表示されているかどうかを確認し、ダイアログを閉じ(表示されている場合)、新しいダイアログを開きます。

上記の解決策のいずれかを達成する可能性はありますか?

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

.net - 子フォームを非表示にすると、親フォームも非表示になるのはなぜですか?

A、B、Cの3つの形式があります。

ボタンがクリックされると、AはBを表示します。同様に、BはCを表示します。どちらもShowDialog()メソッドを使用します。

ただし、フォームCでHide()メソッド(Button Clickイベント内)を使用してフォームを閉じると、フォームBも閉じます。

なぜこれでしょうか?私が見る限り、これを行うべきではありません。私は確かにそれを行うように指示するコードを書きませんでした。

コードは次のとおりです。

更新:私はばかです。既存の[閉じる]ボタンからコピーして貼り付けたため、ボタンがオンDialogResultに設定されていましたが、プロパティが設定されていることに気づきませんでした。Cancelとにかく皆さんの提案をありがとう!

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

android - AlertDialog.Builder create() メソッドの実行中にアプリケーションがクラッシュする - Android

LG Eve 電話でアプリケーションをテストしています。Web から何かをダウンロードしようとするアプリケーションがあり、例外がスローされたときに、エラーが発生したことを示す警告ダイアログを起動することになっています。電話に Wi-Fi 信号がない場合、プログラムは builder.create() でクラッシュします (以下のコードを参照)。ただし、wifi 信号があり、例外が何か他のもの (たとえば、URL のタイプミス) によってスローされた場合、ダイアログは想定どおりに起動します。これがなぜであるかについての手がかりはありますか?

onCreateDialog のコード:

showDialog を呼び出す AsyncTask のコード: