私のVB.Netアプリケーションでは、私はプログレスバーとして、アプリケーションのタスクバーアイコンを使用することができます次のコードがあります。メインフォームではなくダイアログボックスでタスクバーの進行状況を設定できますか?
Public Sub setTaskbarProgress(ByVal upTo As Integer, ByVal outOfTotal As Integer, ByVal stateType As TaskbarProgressBarState)
If TaskbarManager.IsPlatformSupported Then
If stateType = Nothing Then stateType = TaskbarProgressBarState.Normal
Dim tbm As TaskbarManager = TaskbarManager.Instance
tbm.SetProgressValue(upTo, outOfTotal)
If upTo = 0 And outOfTotal = 100 Then
tbm.SetProgressState(TaskbarProgressBarState.NoProgress)
Else
tbm.SetProgressState(stateType)
End If
End If
End Sub
私はこの機能を拡張したい、理想的には4番目のパラメータを持っています。プログレスバー(Taskbar.SetProgressValueとTaskBar.SetProgressState)は常にメインフォームに適用されるのではなく、私のプロジェクトで特定のサブフォームまたはダイアログボックスに適用されたように
Public Sub setTaskbarProgress(ByVal upTo As Integer,
ByVal outOfTotal As Integer, ByVal stateType As TaskbarProgressBarState, _
ByRef target As Form)
。
「TaskbarManager」のどのウィンドウを実際に適用するかを指定する方法はありますか?私はそれをどのように「目標」に与えるのか分かりませんか? Windowsはこれを許可していますか?任意の点を歓迎するでしょう。
ダイアログがハンドル(タスク)とタスクバーの存在(おそらくそうですが、そうではありません)がある限り、Windowsは気にしません。 – RoyalPotato
ありがとう、それは良いニュースです。ダイアログボックスには、ShowInTaskbar = Trueというプロパティがあり、独自のタスクバーが存在します。しかし、どのように私は関連するダイアログボックスのハンドルをTaskbarManagerに送りますか?私は何かが足りない。 –
WindowsAPICodePackを使用していますか? – RoyalPotato