0

バックグラウンド ワーカーを使用していくつかのタスクを実行します。バックグラウンド ワーカーが正常に完了すると、メッセージ ボックスが表示されます。問題は、フォームを最小化して、フォームをクリックするとメッセージ ボックスが表示される場合です。メッセージ ボックスをクリックします。下部のタスクバーに表示されますが、最小化されていますか?

ユーザーがタスクバーのフォームをクリックすると、フォームと共にメッセージ ボックスが表示される可能性はありますか?

現在、メッセージ ボックスの前に以下を追加しようとしましたが、メッセージ ボックスはまだ最小化されているように見えます。

me.activate

アップデート

コーディングを追加していないことをお詫びします。基本的なコーディングなので問題ないと思いましたが、ここにあります....

Private Sub BGWorker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BGWorker.DoWork


            If Not worker.CancellationPending Then

‘ Do code

                If worker.CancellationPending Then
                    e.Cancel = True
‘ Do Code
                    Exit Sub
                End If

            End If


End Sub


  Private Sub BGWorker_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BGWorker.RunWorkerCompleted
            Me.Activate()
            If e.Cancelled Then
Messagebox.show(“Cancelled”)
            Else
Messagebox.show(“Successful”)

                End If
    End Sub

問題は、自分の画面を他の画面の上部に置いたままにしておくとメッセージ ボックスが表示されることですが、フォームをカバーする他のウィンドウがある場合に最小化された場合、メッセージ ボックスはタスクバーでクリックしない限り最小化されたままになります。

メッセージ ボックスがフォーム内にのみ表示されるという意味で、me.activate が役立つと思いました。

4

1 に答える 1

2

あなたのコードを使用してテスト プロジェクトを作成し、問題を再現して修正することができました。このActivateメソッドは、フォームの最小化を解除しません。そのためには、プロパティを設定する必要がありWindowStateます。これを試して:

Private Sub BGWorker_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BGWorker.RunWorkerCompleted
    Me.WindowState = FormWindowState.Normal  ' Add this line
    Me.Activate()
    If e.Cancelled Then
        Messagebox.show(“Cancelled”)
    Else
        Messagebox.show(“Successful”)

    End If
End Sub
于 2012-07-05T15:09:14.160 に答える