/// </summary>\r
internal void clearPanel()\r
{\r
- pnlTask.Controls.Clear();\r
+\r
+ int dummy = pnlTask.Controls.Count;\r
+ for (int h = dummy; h > 0; h--)\r
+ {\r
+ Control ctrl = pnlTask.Controls[h - 1];\r
+ for (int i = ctrl.Controls.Count; i > 0; i--)\r
+ {\r
+ ctrl.Controls[i - 1].Dispose();\r
+ }\r
+ \r
+ ctrl.Dispose();\r
+ }\r
+\r
+ //pnlTask.Controls.Clear();\r
+\r
//先頭行は足す\r
pnlTask.Controls.Add(new CaptionPanelController().createRow(this.pnlTask.Width));\r
lastRow = 17;\r
private void txtInput_KeyDown(object sender, KeyEventArgs e)\r
{\r
int currentYPosition;\r
+ int currentScrollHeight = this.pnlTask.Height - 20;\r
switch (e.KeyCode)\r
{\r
case Keys.Enter:\r
case Keys.Up:\r
e.SuppressKeyPress = true;\r
txtInput.Text = history.prevCommand();\r
+ txtInput.Select(this.txtInput.Text.Length, 0);\r
break;\r
case Keys.Down:\r
e.SuppressKeyPress = true;\r
txtInput.Text = history.nextCommand();\r
+ txtInput.Select(this.txtInput.Text.Length, 0);\r
break;\r
\r
case Keys.PageDown:\r
currentYPosition = Math.Abs(this.pnlTask.AutoScrollPosition.Y);\r
- this.pnlTask.AutoScrollPosition = new Point(0, currentYPosition + 380);\r
+ this.pnlTask.AutoScrollPosition = new Point(0, currentYPosition + currentScrollHeight);\r
break;\r
\r
case Keys.PageUp:\r
currentYPosition = Math.Abs(this.pnlTask.AutoScrollPosition.Y);\r
- this.pnlTask.AutoScrollPosition = new Point(0, currentYPosition - 380);\r
+ this.pnlTask.AutoScrollPosition = new Point(0, currentYPosition - currentScrollHeight);\r
break;\r
}\r
}\r
this.txtInput.Select(this.txtInput.Text.Length, 0);\r
\r
}\r
+ /// <summary>\r
+ /// ウィンドウ全体のサイズ変更時イベントハンドラです。\r
+ /// </summary>\r
+ /// <param name="sender"></param>\r
+ /// <param name="e"></param>\r
private void BaseForm_ResizeEnd(object sender, EventArgs e)\r
{\r
panelResize();\r
\r
}\r
-\r
+ /// <summary>\r
+ /// タスクパネルの大きさ調整を行います。\r
+ /// 起動されるのは、ウィンドウ全体のサイズ変更時、及びコマンド実行時です。\r
+ /// </summary>\r
private void panelResize()\r
{\r
pnlTask.Size = new Size(this.Size.Width - 420, this.Size.Height - 50);\r