2011-06-22 11 views
0

MY C#アプリはうまく動作し、尋ねられるたびに上にとどまります。私が直面していることは次のとおりです。フォームの任意の場所をクリックすると、フォームをアクティブにする方法はありますか?

私のアプリが開いていて、メモ帳と呼ばれる別のアプリも半分開いているとします。メモ帳の任意の場所をクリックすると、それが有効になります。私のアプリでは、ウィンドウの一番上のバーをクリックしてアクティブにする必要があります。なぜそうなのか ?私は自分のアプリをアクティブにして、ユーザーがトップのバーだけでなくフォーム上のどこかをクリックしたときに前面に表示したい。

これを達成するには何が設定または実装する必要がありますか?

+1

コードを表示します。 – Reniuz

+0

私はこの問題はありません。新しい簡単なプロジェクトを作成し、あなたのアプリと比較してください。または私達にいくつかの詳細を教えてください – Saint

+0

フォームに何もない別のプロジェクトを作成し、同じ状況を試しました。そしてその形のどこかをクリックすると正面に来る。どのような詳細を伝える必要がある、共有する - 私はちょうどアプリが巨大なものとしてここに置くべきか理解していない。しかし、あなたが必要とするすべての詳細を投稿します。ちょっと考えてください。 – Tvd

答えて

0

、それを行うようにしてください。 1つの不要な声明が削除され、事が解決されました。あなたの努力のために皆様に感謝します。

0

ウィンドウ上の任意の場所をクリックすると、他のウィンドウが常に上にない限り、フォーカスが得られ、一番上のウィンドウになります。

+0

Windowsエクスプローラとマイアプリが開いていても表示されますが、Windowsエクスプローラはアプリの半画面に重なっています。勝利経験が焦点を当てています。私は私のアプリのフォームをクリックして(中間)、勝利からのフォーカスは失われます。クリックすると、TABコンポーネントは私のアプリにフォーカスされていない(私は信じているフォーカスがない)。私は、私のアプリのタイトルバーをクリックすると、一番上に来て、フルフォーカスを持っています。今、私はコンポーネントを配置しないフォームの中間に私のアプリをクリックすると、勝利の経験からフォーカスが失われますが、私も完全にアクティブにされていません。タイトルバーを押すなどのように、どのようにアクティブにして前面に表示させるのですか? – Tvd

+0

ええと、上記のシナリオは、要素がない場所をクリックすることです。しかし、画像、ラベル、ボックスなどのアプリコンポーネントをクリックすると、タイトルバーを押すように正しく機能します。しかし、コンポーネントがない場所でクリックすると、それは異なって反応します。これらの場所を処理するにはどうすれば、それらはどこにもなく、ユーザーがそこをクリックしてアプリが一番上に来るのですか? – Tvd

+0

画面の前面に表示されるコードを明示的に停止するコードを作成しているか、それを行うコンポーネントまたはライブラリを使用しているか、またはコンポーネントまたはライブラリにバグがあります。 Windowsは、あなたが記述する方法で動作しません。 –

1

は、問題がWndProcメソッドをオーバーライドするとあったForm1_MousClickイベントにこのコードを入れ

bool top = this.TopMost; 
this.TopMost = true; 
this.TopMost = top; 
+0

TopMostはデフォルトとしてのみ、つまりFalseに設定されています。私はMouseClickイベントを追加し、上記のコード "this.TopMost = True;"を追加しましたうまくいきませんでした。 "this.BringToFront()"を試してみました。 MessageBoxも追加されましたが、これは決して表示されません。 - そう、MouseClickは解雇されていないか、Caught !!うーん。 – Tvd

+0

フォームを非表示にして再度表示するか、フォームを最小化して最大化してください。 – Burimi

+0

このコードを書かないでください。 –

関連する問題