OSDN Git Service

v1.1.0.4
[kybernetes/Kybernetes.git] / KyberNetes / view / BaseForm.cs
index ed268ad..a873486 100644 (file)
@@ -172,7 +172,21 @@ namespace com.andoutomo.kybernetes.view
         /// </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
@@ -194,6 +208,7 @@ namespace com.andoutomo.kybernetes.view
         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
@@ -224,20 +239,22 @@ namespace com.andoutomo.kybernetes.view
                 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
@@ -403,12 +420,20 @@ namespace com.andoutomo.kybernetes.view
             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