1

現在、NotifyIcon を必要とするマルチフォーム プロジェクトをコーディングしています。最初のフォームはログイン フォームで、「ログイン」フォームが開き、最後に別のフォームが開きます (これらはすべて FormName.ShowDialog() を使用して開かれ、次のフォームを開く前に非表示になります)。

ログインフォーム -> ログインフォーム -> 最終フォーム。

最終フォームを開くと、NotifyIcon の visible プロパティが true に設定され、通常どおりタスクトレイに表示されます。しかし、最終フォームで Me.Hide を使用すると、フォームと共に NotifyIcon が消えます。

何が起こっているかについてのアイデアはありますか?フォームが表示されていなくても、プログラムはバックグラウンドで実行されますが (これが意図された方法です)、NotifyIcon がなければ、フォームを再度表示する方法はありません。

編集 - 役立つ場合、ログインフォームは別のスレッドで開かれますが、デリゲートを使用しています。

4

3 に答える 3

1

私はその問題の代替解決策を見つけました。Me.Hideを使用する代わりに、次を使用しました:Me.Opacity = 0は、NotifyIconが消えることはありませんでした(NotifyIconでは、クリックするとMe.Opacityが100に設定されます)。

みんなを助けようとしてくれてありがとう。

于 2011-07-28T08:57:55.470 に答える
0

Form_Shown イベントでフォームを非表示にできます。

Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
    Me.Hide
End Sub
于 2012-06-12T14:22:57.820 に答える
0

メインフォームの「すべてのフォームダイアログが終了した後に常に表示されるフォーム」の通知アイコンを「初期化」する必要があります。それでも問題が発生する場合は、「問題はありません!」次に、Me.VisibleChangedイベントを使用してみてください。フォームの可視性が表示に変更されたときはいつでも、暗黙的に を呼び出しますnotificationIcon.Visible = true。ところで、通知アイコンの表示を他の場所で false に設定していますか?

于 2011-07-26T05:12:25.707 に答える