\r
private void ScrollBarOnValueChanged(object sender, EventArgs eventArgs)\r
{\r
+ SuspendDrawing();\r
SetShipLabels();\r
+ ResumeDrawing();\r
}\r
\r
protected override void OnResize(EventArgs ev)\r
base.OnResize(ev);\r
if (_shipList == null || _shipList.Length == 0)\r
return;\r
+ SuspendDrawing();\r
SetupLabels();\r
SetShipLabels();\r
+ ResumeDrawing();\r
}\r
\r
protected override void OnMouseWheel(MouseEventArgs e)\r
{\r
_mode = mode;\r
CreateShipList(sniffer, sortOrder, byShipType);\r
+ SuspendDrawing();\r
SetupLabels();\r
SetShipLabels();\r
+ ResumeDrawing();\r
+ }\r
+\r
+ [DllImport("user32.dll")]\r
+ public static extern int SendMessage(IntPtr hWnd, int wMsg, bool wParam, IntPtr lParam);\r
+\r
+ private void SuspendDrawing()\r
+ {\r
+ SendMessage(Handle, 11, false, IntPtr.Zero); // WM_SETREDRAW = 11\r
+ SuspendLayout();\r
+ }\r
+\r
+ public void ResumeDrawing()\r
+ {\r
+ ResumeLayout();\r
+ SendMessage(Handle, 11, true, IntPtr.Zero);\r
+ Refresh();\r
}\r
\r
void CreateShipList(Sniffer sniffer, ListForm.SortOrder sortOrder, bool byShipType)\r
\r
private void SetupLabels()\r
{\r
- SuspendLayout();\r
for (var i = _labelList.Count; i * LineHeight < Height; i++)\r
{\r
CreateGroupingComponents(i);\r
_repairPanelList[i].Visible = _mode == "修復";\r
}\r
SetupScrollBar();\r
- ResumeLayout();\r
}\r
\r
private void SetupScrollBar()\r
\r
private void SetShipLabels()\r
{\r
- SuspendDrawing();\r
- SuspendLayout();\r
for (var i = 0; i < (Height + LineHeight - 1) / LineHeight; i++)\r
{\r
if (InShipStatus(_mode))\r
if (_mode == "修復")\r
SetRepairList(i);\r
}\r
- ResumeLayout();\r
- ResumeDrawing();\r
- }\r
-\r
- [DllImport("user32.dll")]\r
- public static extern int SendMessage(IntPtr hWnd, int wMsg, bool wParam, IntPtr lParam);\r
-\r
- private void SuspendDrawing()\r
- {\r
- SendMessage(Handle, 11, false, IntPtr.Zero); // WM_SETREDRAW = 11\r
- }\r
-\r
- public void ResumeDrawing()\r
- {\r
- SendMessage(Handle, 11, true, IntPtr.Zero);\r
- Refresh();\r
}\r
\r
private bool InShipStatus(string mode) => Array.Exists(new[] {"全員", "A", "B", "C", "D"}, x => mode == x);\r