public Label Rate { get; set; }\r
public Label Diff { get; set; }\r
\r
- public override Control[] Controls => base.Controls.Concat(new Control[] {Rate, Diff}).ToArray();\r
+ public override Control[] AddedControls => new Control[] {Rate, Diff};\r
}\r
\r
public void Update(Sniffer sniffer)\r
public ShipLabel.RepairTime Time { private get; set; }\r
public ShipLabel.Hp Damage { get; set; }\r
\r
- public override Control[] Controls => base.Controls.Concat(new Control[] {Time, Damage}).ToArray();\r
+ public override Control[] AddedControls => new Control[] {Time, Damage};\r
\r
public override void Set(ShipStatus status)\r
{\r
public ShipLabel.Exp Exp { get; set; }\r
public Label BackGround { get; set; }\r
\r
- public override Control[] Controls =>\r
- new Control[] {Hp, Cond, Level, Exp, Name, Fleet, BackGround}.Where(c => c != null)\r
- .ToArray(); // 名前のZ-orderを下に\r
+ // Nameが長すぎる場合は他のラベルの下に隠れてほしいのでのZ-orderを下にする。\r
+ // サブクラスで追加するラベルはBackGroundで隠れないようにZ-orderを上にする。\r
+ public sealed override Control[] Controls =>\r
+ AddedControls.Concat(new Control[] {Fleet, Hp, Cond, Level, Exp, Name, BackGround}.Where(c => c != null))\r
+ .ToArray();\r
+\r
+ public virtual Control[] AddedControls => new Control[0];\r
\r
public virtual void Set(ShipStatus status)\r
{\r
public ShipLabel.RepairTime Time { get; set; }\r
public Label PerHp { get; set; }\r
\r
- public override Control[] Controls => base.Controls.Concat(new[] {Time, PerHp}).ToArray();\r
+ public override Control[] AddedControls => new Control[] {Time, PerHp};\r
\r
public override void Set(ShipStatus status)\r
{\r