Я использую TaskDialog в WindowsAPICodePack.Когда я пытаюсь создать TaskDialog без использования только TaskDialogProgressBar и TaskDialogButton, он выдает следующее исключение.
System.ComponentModel.Win32Exception был необработанным Message = Недопустимые аргументы для вызова Win32.Source = Microsoft.WindowsAPICodePack ErrorCode = -2147467259 NativeErrorCode = 0 InnerException: System.ArgumentException Message = Значение не попадает в ожидаемый диапазон.InnerException:
Я хотел, чтобы TaskDialog с ProgressBar сообщал о статусе, но я не хочу, чтобы пользователь закрывал диалоговое окно, пока выполнение не будет завершено.Поэтому я использую 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();
EventHandler для нажатия кнопки закрытия
void OnCloseClick(object sender, EventArgs e)
{
if (_taskDialog != null)
_taskDialog.Close();
}
Матф.