使用 ProgressBar 和自定义按钮显示 TaskDialog 时出错

Posted

技术标签:

【中文标题】使用 ProgressBar 和自定义按钮显示 TaskDialog 时出错【英文标题】:Error showing TaskDialog with both ProgressBar and Custom Button 【发布时间】:2011-07-06 14:42:24 【问题描述】:

我正在使用 WindowsAPICodePack 中的 TaskDialog。当我尝试在没有 TaskDialogProgressBar 和 TaskDialogBu​​tton 的情况下创建 TaskDialog 时,它会引发以下异常。

System.ComponentModel.Win32Exception 未处理 Message=Win32 调用的参数无效。 源=Microsoft.WindowsAPICodePack 错误代码=-2147467259 NativeErrorCode=0 内部异常:System.ArgumentException Message=Value 不在预期范围内。 内部异常:

我希望有一个带有 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();

关闭按钮单击的事件处理程序

void OnCloseClick(object sender, EventArgs e)

    if (_taskDialog != null)
        _taskDialog.Close();

-马特。

【问题讨论】:

【参考方案1】:

尝试两件事:

首先将taskDialog StandardButtons 属性设置为None:

_taskDialog.StandardButtons = TaskDialogStandardButtons.None;

第二次给btn取个名字:

TaskDialogButton btnClose = new TaskDialogButton()  Text = "I'm a button" ;

【讨论】:

以上是关于使用 ProgressBar 和自定义按钮显示 TaskDialog 时出错的主要内容,如果未能解决你的问题,请参考以下文章

lvgl显示中文和自定义图标

lvgl显示中文和自定义图标

无法使用按钮和自定义数据更新 Tkinter matplotlib 图

导航栏高度和自定义按钮

Paypal 支付按钮和自定义选项

Android:如何添加按钮和自定义视图