問題タブ [topmost]

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

c# - プログレスバーをダブルクリックするとウィンドウが開き、すぐにバックグラウンドにドラッグされる

ユーザーが進行状況バーをダブルクリックした後に開く非ダイアログ ウィンドウがあります。

開くたびに、一時的にフォアグラウンドに表示された後、バックグラウンドにドラッグされます (プログレス バーのあるメイン アプリケーション ウィンドウの後ろに隠れています)。

一番上のウィンドウのままにしたいのですが、一番上にしたくありません。

どうすればいいですか?

私はこれをWPF 4とc#で書いています

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

c# - APIなしですでに開いているwinformアプリケーションを前面に出しますか?

やあ、

バックグラウンドで実行されている WinForm アプリケーション (app1) があり、別のアプリケーション (app2) (最上位のアクティブなアプリケーション) が app1 で startProcess をトリガーするとします。

ここで、app1 が既存のインスタンスを使用し、それを最上位のアプリケーション (app1 アプリケーション内だけでなく) に移動する必要があります。

私はこれを見つけました: http://sanity-free.org/143/csharp_dotnet_single_instance_application.html

APIなしではこれを行うことができないというのは本当ですか? 私は、bringToFront、Activate、および Focus を調べましたが、これらはすべて、アプリケーション間ではなく、アプリケーション内でのみ効果があるように見えますか?

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

ui-automation - UIAutomationを使用して、ウィンドウが一番上のウィンドウであることを確認するにはどうすればよいですか?

私は多くのフォーラムで解決策を検索しましたが、それらはすべて、WindowPatternを使用し、ウィンドウが上にある場合は最上位の値をチェックしてtrueを返す必要があると言っています。しかし、これは私には当てはまりません。outlokのタブ内に格納されているアプリケーションをテストしています。その後、ユーザーはアプリケーション内をクリックして新しいウィンドウを開くことができます。このウィンドウが前面にあることを確認したいと思います。また、これはWPFアプリケーションであるため、開いた新しいウィンドウ用に個別のハンドルを取得することはできません。

ありがとう

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

c# - 新しい電子メールは Outlook をロックし、電子メール ウィンドウを最上位に強制します

次のコードを使用して、DataGridView から電子メール アドレスを読み取り、Outlook 電子メールを作成しています。これは完全に機能しますが、新しい電子メールが topMost として設定されているか、ダイアログ ウィンドウとして開かれていることを除いて、新しい電子メール ウィンドウが開いている間は Outlook でクリックしたり他の操作を行ったりすることはできません。これは、新しいメールを開いて、受信トレイで何かを検索または検索しようとした場合に問題になります。また、メールを閉じるか送信するまで、アプリケーションが応答しません (ロックされます)。

新しい電子メールを作成し、通常の機能を引き続き使用する方法はありますか? Outlook 自体から新しいメール ボタンをクリックすると、必要な数のメールを開いたり、検索を使用したりできます。

行は、this.TopMost = falseWinForms アプリを非表示にして、新しいメール ウィンドウを前面に表示することです。

さらに奇妙なのは、メールに何か書いて閉じると、保存できることです。これを行うと、メールのバックアップを開くと、ロックされた状態に戻ります。これはメールの作成方法に関係があるのではないかと考え始めているため、設定または属性が適用されて保存されます。

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

c# - 他のすべてのコントロールの上にカスタムコントロールを描画する(以前に追加された)

他のUserControlを追加するUserControlがありますが、「最新の」コントロールを一番上に追加して、他のコントロールよりも上に配置したいと思います。コントロールは互いにオーバーラップする必要があるためです。カードゲームのように。したがって、5つのコントロールを追加します。最初のコントロールは、優先度が最も低く、最も優先度が高く、最も目立つようにする必要があります。

何か案は?

または、「コンテナ」コントロールのPaintメソッドをオーバーライドする必要がありますか?そしてControl.CreateGraphics()とそれを描画しますか?

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

c# - Windows フォーム全体を絶対に最大化

ウィンドウをすべての前面に絶対に配置する質問がありますが、印刷ダイアログを起動すると、ウィンドウを前面に保持する方法が見つかりません。TopMost を実行している印刷ダイアログの上にウィンドウを保持する必要がありますが、タスクバーが表示されます隠されていますが。

それを最大化して全体的に配置するための私のフォームウィンドウのコード:

印刷ダイアログを起動するコード:

タスクバーを非表示にするコードは次のとおりです。

「this.TopMost = true;」の後にフォームで SetWinFullScreen を呼び出すこのコードも試しました。フォームを最大化しますが、どちらも機能しません:

いずれの場合も、印刷ダイアログが起動されると、タスクバーが表示され、ユーザーはそれをクリックできます。

この印刷ダイアログをバックグラウンドで起動したり、フォームを絶対に (タスクバーやダイアログを表示せずに) 一番上に配置したりする方法はありますか?

編集済み: 問題は次の行にあります。

この行は印刷ダイアログを起動し、タスクバーが表示されます (非表示または非表示)。

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

c# - 自分のフォームが現在他のフォームの上にあるかどうかを確認するにはどうすればよいですか?

基本的に、自分のプログラムが他のすべてのプログラムの上に階層化されているかどうかを確認するにはどうすればよいですか?

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

vb.net - 画面の上部にあるウィンドウのハンドルを見つけます

外部アプリケーション (ポーカー オンライン ゲーム テーブル) のウィンドウが他のすべてのウィンドウを飛び越えるタイミングを確認したいのは、自分がプレイする番だからです。

問題は、Game テーブルがフォアグラウンドでジャンプすることです...しかし、ウィンドウはアクティブになりません...これは、API GetForegroundWindow (および fatcこの API は、前のウィンドウのハンドルを引き続き返します。これは、すべてのデスクトップ ウィンドウを飛び越えるゲーム テーブルの下にある場合も同様です)。また、GetTopWindow API も機能しません。

ここでの問題は、それがアクティブでない場合でも、一番上の VISIBLE ウィンドウ (私の目には他のすべての開いているウィンドウの上にあるウィンドウ) のハンドルを見つける方法ですか?


いいえ、ウィンドウは TopMost ウィンドウではありません。実際、別のウィンドウをクリックすると、バックグラウンドになります。それが TopMost ウィンドウである必要がある場合は、一番上に残ります。

おそらく、WM_SHOW または WM_NOACTIVATE フラグによってフォアグラウンドに配置されます。

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

c# - 正面のWFAウィンドウ

TreeViewを含むWFAを取得MouseDoubleClickし、treeviewItemにイベントを追加しました。コードでは、eventhandlerは新しいウィンドウを開きます。

これとTreeViewItemを試してみるとdoubleClick、ウィンドウは開きますが、前に留まりません(TreeViewがあるページの後ろに移動します)

イベントハンドラーにを追加しようとしTopmost = trueましたが、機能しません。

誰かが解決策を手に入れましたか?

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

vb.net - モーダルダイアログが表示されているときはフォームが一番上にあるがクリックできない

私が欲しいのは、表示するメッセージがあるときに右下隅に表示される小さな通知メッセージです。何もない場合、通知メッセージは表示されません。通知メッセージがフォーカスを奪ったり、メイン アプリケーションをブロックしたりしてはなりません。

私が持っているのは、タスクを一種のメッセージ サービスとして実行するアプリケーションです。このアプリケーションには、モーダル ダイアログとして開く複数のダイアログが含まれています。

メッセージがアプリケーションに到着すると、監視可能なリストに追加されます。これにより、通知メッセージを表示するフォームでイベント ハンドラが起動され、再描画されてリストの最初の項目が表示されます。メッセージが読み取られるか閉じられると、リストから削除されてイベントが再び発生し、リストの最初の項目からの情報でフォームが更新されます。リストが空の場合、フォームは非表示になります。

私の問題は、メッセージを受け取って通知メッセージフォームが表示され、それを閉じる前にメインアプリケーションでモーダルダイアログが開かれた場合、通知メッセージを含むフォームがモーダルダイアログであってもすべての上にあることです。しかし、それはクリック可能ではありません。

いくつかのフォーラムを検索して回答を読みましたが、回答を見つけることができませんでした。

この動作をシミュレートする小さなテスト アプリケーションは、Github にあります。 https://github.com/Oneleg/NotificationMessage

簡単な情報:

NotificationMessage フォームには次のものがあります。

  • FormBorderStyle = なし
  • 最上位 = False
  • Show() で表示されます
  • ShowWithoutActivation() をオーバーロードします
  • WS_EX_NOACTIVATE WS_EX_TOOLWINDOW WS_EX_TOPMOST で CreateParams をオーバーロードします。

これをどのように解決できるかについてのアイデアはありますか?