修订版 | 7c4e701c179a5a7ea37d61a6d5f6486b3d2ac695 (tree) |
---|---|
时间 | 2020-09-14 22:10:55 |
作者 | Kazuhiro Fujieda <fujieda@user...> |
Commiter | Kazuhiro Fujieda |
一覧を表示せずに戦況が更新されると艦名などが表示されないのを直す
@@ -32,6 +32,7 @@ namespace KancolleSniffer.View.ListWindow | ||
32 | 32 | private readonly InformationPanel _information; |
33 | 33 | private CellInfo _cellInfo; |
34 | 34 | private readonly BattleData _data = new BattleData(); |
35 | + private int _lines; | |
35 | 36 | |
36 | 37 | public Spoiler Spoilers { get; set; } |
37 | 38 |
@@ -212,8 +213,9 @@ namespace KancolleSniffer.View.ListWindow | ||
212 | 213 | |
213 | 214 | private void ClearResult() |
214 | 215 | { |
216 | + _lines = 0; | |
215 | 217 | _scrollPosition = AutoScrollPosition; |
216 | - SetPanelVisible(0); | |
218 | + SetPanelVisible(); | |
217 | 219 | _information.Visible = false; |
218 | 220 | _rankLabel.Text = ""; |
219 | 221 | _supportLabel.Text = ""; |
@@ -235,8 +237,8 @@ namespace KancolleSniffer.View.ListWindow | ||
235 | 237 | SuspendLayout(); |
236 | 238 | SetEachResult(_friendLabels, result.Friend); |
237 | 239 | SetEachResult(_enemyLabels, result.Enemy); |
238 | - var lines = Max(Ships(result.Friend).Length, Ships(result.Enemy).Length); | |
239 | - SetPanelVisible(lines); | |
240 | + _lines = Max(Ships(result.Friend).Length, Ships(result.Enemy).Length); | |
241 | + SetPanelVisible(); | |
240 | 242 | ResumeLayout(); // スクロールバーの有無を決定する |
241 | 243 | AdjustPanelWidth(); |
242 | 244 | } |
@@ -386,10 +388,10 @@ namespace KancolleSniffer.View.ListWindow | ||
386 | 388 | } |
387 | 389 | } |
388 | 390 | |
389 | - private void SetPanelVisible(int showPanels) | |
391 | + private void SetPanelVisible() | |
390 | 392 | { |
391 | 393 | for (var i = 0; i < _friendLabels.Count; i++) |
392 | - _friendLabels[i].BackPanel.Visible = i < showPanels; | |
394 | + _friendLabels[i].BackPanel.Visible = i < _lines; | |
393 | 395 | } |
394 | 396 | |
395 | 397 | private int _gap; |
@@ -399,8 +401,8 @@ namespace KancolleSniffer.View.ListWindow | ||
399 | 401 | var labelMax = _enemyLabels[0].Name.Location.X + _enemyLabels.Max(labels => labels.Name.Size.Width) - 1; |
400 | 402 | var panelWidth = Max(ClientSize.Width, // スクロールバーの有無を反映した横幅 |
401 | 403 | labelMax); // 敵の名前の右端 |
402 | - foreach (var panel in from labels in _friendLabels where labels.BackPanel.Visible select labels.BackPanel) | |
403 | - panel.Width = panelWidth; | |
404 | + for (var i = 0; i < _lines; i++) | |
405 | + _friendLabels[i].BackPanel.Width = panelWidth; | |
404 | 406 | _gap = (ClientSize.Width - labelMax) * 2 / 3; |
405 | 407 | } |
406 | 408 |