OSDN Git Service

一覧ウィンドウのヘッダが正しく切り替わらないことがあるのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 16 May 2019 12:58:12 +0000 (21:58 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 16 May 2019 12:58:12 +0000 (21:58 +0900)
KancolleSniffer/ListForm.Designer.cs
KancolleSniffer/ListForm.cs

index e63163c..5c4ad06 100644 (file)
@@ -662,7 +662,6 @@ namespace KancolleSniffer
             this.Activated += new System.EventHandler(this.ListForm_Activated);\r
             this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ListForm_FormClosing);\r
             this.Load += new System.EventHandler(this.ListForm_Load);\r
-            this.Shown += new System.EventHandler(this.ListForm_Shown);\r
             this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.ListForm_KeyPress);\r
             this.contextMenuStripShipList.ResumeLayout(false);\r
             this.contextMenuStrip.ResumeLayout(false);\r
index 9fb3211..9303aed 100644 (file)
@@ -69,19 +69,6 @@ namespace KancolleSniffer
             swipe.AddPanel(fleetPanel);\r
         }\r
 \r
-        /// <summary>\r
-        /// パネルのz-orderがくるうのを避ける\r
-        /// https://stackoverflow.com/a/5777090/1429506\r
-        /// </summary>\r
-        private void ListForm_Shown(object sender, EventArgs e)\r
-        {\r
-            // ReSharper disable once NotAccessedVariable\r
-            IntPtr handle;\r
-            foreach (Control panel in Controls)\r
-                // ReSharper disable once RedundantAssignment\r
-                handle = panel.Handle;\r
-        }\r
-\r
         public void UpdateList()\r
         {\r
             SetHeaderVisibility();\r
@@ -117,12 +104,28 @@ namespace KancolleSniffer
 \r
         private void SetHeaderVisibility()\r
         {\r
-            panelItemHeader.Visible = InItemList || InAntiAir || InBattleResult || InMiscText;\r
-            panelGroupHeader.Visible = InGroupConfig;\r
-            panelRepairHeader.Visible = InRepairList;\r
-            panelFleetHeader.Visible = InFleetInfo;\r
+            var headers = new[]\r
+            {\r
+                new {Header = panelItemHeader, Visible = InItemList || InAntiAir || InBattleResult || InMiscText},\r
+                new {Header = panelGroupHeader, Visible = InGroupConfig},\r
+                new {Header = panelRepairHeader, Visible = InRepairList},\r
+                new {Header = panelFleetHeader, Visible = InFleetInfo}\r
+            };\r
+            foreach (var header in headers)\r
+            {\r
+                if (header.Visible)\r
+                {\r
+                    header.Header.Visible = true;\r
+                    header.Header.BringToFront();\r
+                }\r
+                else\r
+                {\r
+                    header.Header.Visible = false;\r
+                }\r
+            }\r
         }\r
 \r
+\r
         private void SetPanelVisibility()\r
         {\r
             SetVisible(shipListPanel, InShipStatus || InGroupConfig || InRepairList);\r