OSDN Git Service

一覧を表示せずに戦況が更新されると艦名などが表示されないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 13 Sep 2020 06:17:31 +0000 (15:17 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 14 Sep 2020 13:10:55 +0000 (22:10 +0900)
KancolleSniffer/View/ListWindow/BattleResultPanel.cs

index 08fe21c..fd172d9 100644 (file)
@@ -32,6 +32,7 @@ namespace KancolleSniffer.View.ListWindow
         private readonly InformationPanel _information;\r
         private CellInfo _cellInfo;\r
         private readonly BattleData _data = new BattleData();\r
+        private int _lines;\r
 \r
         public Spoiler Spoilers { get; set; }\r
 \r
@@ -212,8 +213,9 @@ namespace KancolleSniffer.View.ListWindow
 \r
         private void ClearResult()\r
         {\r
+            _lines = 0;\r
             _scrollPosition = AutoScrollPosition;\r
-            SetPanelVisible(0);\r
+            SetPanelVisible();\r
             _information.Visible = false;\r
             _rankLabel.Text = "";\r
             _supportLabel.Text = "";\r
@@ -235,8 +237,8 @@ namespace KancolleSniffer.View.ListWindow
             SuspendLayout();\r
             SetEachResult(_friendLabels, result.Friend);\r
             SetEachResult(_enemyLabels, result.Enemy);\r
-            var lines = Max(Ships(result.Friend).Length, Ships(result.Enemy).Length);\r
-            SetPanelVisible(lines);\r
+            _lines = Max(Ships(result.Friend).Length, Ships(result.Enemy).Length);\r
+            SetPanelVisible();\r
             ResumeLayout(); // スクロールバーの有無を決定する\r
             AdjustPanelWidth();\r
         }\r
@@ -386,10 +388,10 @@ namespace KancolleSniffer.View.ListWindow
             }\r
         }\r
 \r
-        private void SetPanelVisible(int showPanels)\r
+        private void SetPanelVisible()\r
         {\r
             for (var i = 0; i < _friendLabels.Count; i++)\r
-                _friendLabels[i].BackPanel.Visible = i < showPanels;\r
+                _friendLabels[i].BackPanel.Visible = i < _lines;\r
         }\r
 \r
         private int _gap;\r
@@ -399,8 +401,8 @@ namespace KancolleSniffer.View.ListWindow
             var labelMax = _enemyLabels[0].Name.Location.X + _enemyLabels.Max(labels => labels.Name.Size.Width) - 1;\r
             var panelWidth = Max(ClientSize.Width, // スクロールバーの有無を反映した横幅\r
                 labelMax); // 敵の名前の右端\r
-            foreach (var panel in from labels in _friendLabels where labels.BackPanel.Visible select labels.BackPanel)\r
-                panel.Width = panelWidth;\r
+            for (var i = 0; i < _lines; i++)\r
+                _friendLabels[i].BackPanel.Width = panelWidth;\r
             _gap = (ClientSize.Width - labelMax) * 2 / 3;\r
         }\r
 \r