InitializeComponent();\r
\r
this.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);\r
+ toolTip.SetToolTip(autoCloseCheckBox,\r
+ string.Format("エラーがなく正常に終了した場合、{0}秒後に自動的にこのダイアログを閉じます", autoCloseTimer.Interval/1000));\r
}\r
\r
private void onDownloadEvent(object sender, DownloadEventArgs a)\r
if (taskSet.Done) {\r
okButton.Enabled = true;\r
cancelButton.Enabled = false;\r
+ \r
+ // タスクが完了したらしばらく待って閉じるために、自動クローズタイマーを起動する\r
+ autoCloseTimer.Start();\r
}\r
break;\r
case NaGetTaskSetEventType.STARTED_TASKSET:\r
\r
NativeMethods.ProgressBar_SetState(progressBar, 2); // VistaProgress色:エラー\r
\r
+ autoCloseCheckBox.Enabled = false;\r
okButton.Enabled = true;\r
cancelButton.Enabled = false;\r
break;\r
\r
NativeMethods.ProgressBar_SetState(progressBar, 1); // VistaProgress色:中断\r
\r
+ autoCloseCheckBox.Enabled = false;\r
okButton.Enabled = true;\r
cancelButton.Enabled = false;\r
break;\r
logBox.AppendText(" [エラー] " + e.TaskMessage + System.Environment.NewLine);\r
logBox.SelectionColor = logBox.ForeColor;\r
\r
+ autoCloseCheckBox.Enabled = false;\r
break;\r
}\r
\r
\r
void CancelButtonClickConcrete(object sender, EventArgs e)\r
{\r
+ autoCloseCheckBox.Enabled = false;\r
if (taskSet != null && taskSet.Running && taskSet.Cancelable) {\r
cancelButton.Enabled = false;\r
\r
{\r
this.BringToFront();\r
}\r
+ \r
+ void ExecutionProgressViewerFormClosed(object sender, FormClosedEventArgs e)\r
+ {\r
+ autoCloseTimer.Enabled = false;\r
+ }\r
+ \r
+ void AutoCloseTimerTick(object sender, EventArgs e)\r
+ {\r
+ autoCloseTimer.Stop();\r
+ \r
+ if (InvokeRequired) {\r
+ Invoke(new EventHandler(AutoCloseTimerTickConcrete), sender, e);\r
+ } else {\r
+ AutoCloseTimerTickConcrete(sender,e);\r
+ }\r
+ }\r
+ \r
+ void AutoCloseTimerTickConcrete(object sender, EventArgs e)\r
+ {\r
+ // autoCloseCheckBoxが有効(正常終了)かつチェックのときに限り、OKボタンを自動的にクリック\r
+ if (autoCloseCheckBox.Enabled && autoCloseCheckBox.Checked && okButton.Enabled) {\r
+ OkButtonClick(sender, e);\r
+ } else if (! autoCloseCheckBox.Enabled) {\r
+ // タイマーの時間がすぎて、そのとき自動で閉じないようにしていしてあるならば、手動で閉じるように\r
+ autoCloseCheckBox.Enabled = false;\r
+ }\r
+ }\r
}\r
}\r