2011-07-06 24 views
0

WindowsAPICodePack内のTaskDialogを使用しています。 TaskDialogProgressBarとTaskDialogBu​​ttonを使わずにTaskDialogを作成しようとすると、それは後続の例外をスローします。ProgressBarとカスタムボタンの両方でTaskDialogを表示しているエラー

System.ComponentModel.Win32Exceptionが処理されませんでした。 メッセージ= Win32呼び出しに無効な引数があります。 ソース= Microsoft.WindowsAPICodePack ErrorCode = -2147467259 NativeErrorCode = 0 InnerException:System.ArgumentException メッセージ=値が予想される範囲内にない。 InnerException:

状況を報告するためにProgressBarでTaskDialogを持っていましたが、進捗状況が完了するまでダイアログを閉じる必要はありません。だから私は標準の閉じるボタンの代わりにTaskDialogBu​​ttonを使用しています。

ここに私が使用しているコードがあります。閉じるボタンの

_taskDialog = new TaskDialog(); 
_taskDialog.Cancelable = true; 
_taskDialog.Caption = "Delete Account"; 
_taskDialog.InstructionText = "Deleting Account(s)"; 
_taskDialog.Text = "Please wait until the delete operation completes."; 

TaskDialogProgressBar progressbar = new TaskDialogProgressBar(); 
progressbar.State = TaskDialogProgressBarState.Marquee; 
_taskDialog.ProgressBar = progressbar; 

TaskDialogButton btnClose = new TaskDialogButton(); 
btnClose.Click += new EventHandler(OnCloseClick); 

_taskDialog.Controls.Add(btnClose); 
//_taskDialog.StandardButtons = TaskDialogStandardButtons.Close; 

_taskDialog.Icon = TaskDialogStandardIcon.Information; 
_taskDialog.OwnerWindowHandle = this.Handle; 
_taskDialog.StartupLocation = TaskDialogStartupLocation.CenterOwner; 

_taskDialog.Show(); 

EventHandlerは

void OnCloseClick(object sender, EventArgs e) 
{ 
    if (_taskDialog != null) 
     _taskDialog.Close(); 
} 

-Mattをクリックします。

答えて

0

は2つのことを試してみてください:

まずなしにtaskDialog StandardButtonsプロパティを設定します。

_taskDialog.StandardButtons = TaskDialogStandardButtons.None; 

第二には、btnClose名前を与える:

TaskDialogButton btnClose = new TaskDialogButton() { Text = "I'm a button" }; 
関連する問題