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();
}
- 매트를 클릭합니다.