2011-07-06 2 views
0

WindowsAPICodePack에서 TaskDialog를 사용하고 있습니다. TaskDialogProgressBar 및 TaskDialogButton없이 TaskDialog를 만들려고하면 다음 예외가 발생합니다.ProgressBar 및 사용자 지정 단추가있는 TaskDialog를 표시하는 중 오류가 발생했습니다.

System.ComponentModel.Win32Exception 처리되지 않았습니다. 메시지 = Win32 호출에 잘못된 인수가 있습니다. Source = Microsoft.WindowsAPICodePack ErrorCode = -2147467259 NativeErrorCode = 0 InnerException : System.ArgumentException 메시지 = 값이 예상 한 범위 내에 있지 않습니다. InnerException :

상태를보고하기 위해 ProgressBar가있는 TaskDialog를 갖고 싶었지만 진행이 완료 될 때까지 대화 상자를 닫으려고하지 않습니다. 그래서 표준 닫기 단추 대신 TaskDialogButton을 사용하고 있습니다.

다음은 현재 사용중인 코드입니다. 닫기 버튼에 대한

_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(); 

이벤트 핸들러는

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

- 매트를 클릭합니다.

답변

0

두 가지를 시도해보십시오

TaskDialogButton btnClose = new TaskDialogButton() { Text = "I'm a button" }; 
:
_taskDialog.StandardButtons = TaskDialogStandardButtons.None; 

둘째 btnClose에 이름을 지정 :

먼저 없음으로 taskDialog StandardButtons 속성을 설정