private void RefreshButtons() { Program.AssertOnEventThread(); var VMs = hostService.GetVMs(); while (buttons.Count > 0) { VmButton button = buttons[0]; buttons.RemoveAt(0); button.Dispose(); } int totalWidth = 0; foreach (XenVM vm in VMs.Values) { if (vm.Slot == 0) // If uivm { // Stash it, and skip. this.uivm = vm; continue; } // Ends if uivm if (vm.Hidden) { continue; } VmButton button = new VmButton(vm, vm.Image, vm.UUID == hostService.UUID); //button.Cursor = Cursors.Hand; Controls.Add(button); buttons.Add(button); totalWidth += button.Width + BUTTON_PADDING; } totalWidth -= BUTTON_PADDING; int x = (Width - totalWidth) / 2; foreach (VmButton button in buttons) { button.Location = new Point(x, BUTTON_TOP_OFFSET); x += button.Width + BUTTON_PADDING; } }