private TabPage CreateServerTreePage() { int rowIndex = 0; int tabIndex = 0; TabPage tabPage = NewTabPage("群组树"); GroupBox groupBox = new GroupBox(); groupBox.Text = "服务器树"; GroupBox groupBox2 = groupBox; FormTools.AddCheckBox(groupBox2, "单击以选中将焦点移到远程客户端", Program.Preferences.Settings.FocusOnClick, 0, ref rowIndex, ref tabIndex); FormTools.AddCheckBox(groupBox2, "树控件处于非活动状态时使节点变暗", Program.Preferences.Settings.DimNodesWhenInactive, 0, ref rowIndex, ref tabIndex); _treeLocationCombo = FormTools.AddLabeledValueDropDown(groupBox2, "位置", ref rowIndex, ref tabIndex, (DockStyle v) => v.ToString(), new DockStyle[2] { DockStyle.Left, DockStyle.Right }); _treeVisibilityCombo = FormTools.AddLabeledValueDropDown(groupBox2, "可见方式", ref rowIndex, ref tabIndex, (ControlVisibility v) => v.ToString(), new ControlVisibility[3] { ControlVisibility.Dock, ControlVisibility.AutoHide, ControlVisibility.Hide }); Label label = FormTools.NewLabel("弹出延迟:", 0, rowIndex++); label.Left += 24; label.Size = new Size(80, label.Height); NumericTextBox serverTreeAutoHidePopUpDelay = new NumericTextBox(0, 1000, "自动隐藏弹出延迟时间必须为0到1000毫秒") { Enabled = false, Location = new Point(label.Right, label.Top), Size = new Size(40, 24), Setting = Program.Preferences.Settings.ServerTreeAutoHidePopUpDelay, TabStop = true, TabIndex = tabIndex++ }; _treeVisibilityCombo.SelectedIndexChanged += delegate { serverTreeAutoHidePopUpDelay.Enabled = (_treeVisibilityCombo.SelectedValue == ControlVisibility.AutoHide); }; groupBox2.AddControlsAndSizeGroup(label); Label label2 = new Label(); label2.Location = new Point(serverTreeAutoHidePopUpDelay.Right + 3, label.Top); label2.Size = new Size(80, 24); label2.Text = "毫秒(s)"; Label label3 = label2; groupBox2.Controls.Add(serverTreeAutoHidePopUpDelay, label3); groupBox2.SizeAndLocate(null); _virtualGroupsGroup = new GroupBox { Text = "虚拟群组" }; foreach (IBuiltInVirtualGroup item in Program.BuiltInVirtualGroups.Where((IBuiltInVirtualGroup group) => group.IsVisibilityConfigurable)) { _virtualGroupsGroup.Controls.Add(new CheckBox { Size = new Size(112, 24), Tag = item, Text = item.Text }); } FormTools.LayoutGroupBox(_virtualGroupsGroup, 2, groupBox2); rowIndex = 0; tabIndex = 0; GroupBox groupBox3 = new GroupBox(); FormTools.AddLabeledValueDropDown(groupBox3, "组排序方式", Program.Preferences.Settings.GroupSortOrder, ref rowIndex, ref tabIndex, Helpers.SortOrderToString, new SortOrder[2] { SortOrder.ByName, SortOrder.None }); FormTools.AddLabeledEnumDropDown(groupBox3, "服务器排序方式", Program.Preferences.Settings.ServerSortOrder, ref rowIndex, ref tabIndex, Helpers.SortOrderToString); groupBox3.Text = "排序方式"; FormTools.LayoutGroupBox(groupBox3, 2, _virtualGroupsGroup); tabPage.Controls.Add(groupBox2, groupBox3, _virtualGroupsGroup); return(tabPage); }