/// <summary> /// Recalcualtes the size of the container. Assumes that DisplayRectangle.Location is set to the upper left location of this container. /// </summary> public override void RecalcSize() { if(this.SuspendLayout) return; if(this.SubItems.Count==0) { if(this.DesignMode && !this.SystemContainer) { m_Rect.Size=m_EmptyDesignTimeSize; if(m_LayoutOrientation==eOrientation.Horizontal) m_Rect.Width+=12; else m_Rect.Height+=12; } else { m_Rect=Rectangle.Empty; } return; } IContentLayout layout=this.GetContentLayout(); BlockLayoutManager blockLayout=this.GetBlockLayoutManager(); BaseItem[] elements=new BaseItem[this.SubItems.Count]; this.SubItems.CopyTo(elements,0); if(m_Rect.Width==0) m_Rect.Width=16; if(m_Rect.Height==0) m_Rect.Height=16; m_Rect=layout.Layout(m_Rect,elements,blockLayout); base.RecalcSize(); }
protected override void CopyToItem(BaseItem copy) { ControlContainerItem objCopy=copy as ControlContainerItem; base.CopyToItem(objCopy); objCopy.ContainerLoadControl=this.ContainerLoadControl; objCopy.InitControl(); }
public int Add(BaseItem item) { item.SetOwner(m_Owner); item.Visible=false; item.Displayed=false; return List.Add(item); }
private void FrmSymbolStyle_Load(object sender, EventArgs e) { //遍历文件 DirectoryInfo theFolder = new DirectoryInfo(ClsGDBDataCommon.GetParentPathofExe() + @"Resource\Style\"); FileInfo[] fileInfo = theFolder.GetFiles(); //样式数量 int StyleNumber = 0; foreach (FileInfo NextFile in fileInfo) //遍历文件获取数量 { StyleNumber++; } DevComponents.DotNetBar.BaseItem[] BaseItem = new DevComponents.DotNetBar.BaseItem[StyleNumber]; int N = 0; foreach (FileInfo NextFile in fileInfo) //遍历文件加载名称 { DevComponents.DotNetBar.CheckBoxItem CheckBox = new DevComponents.DotNetBar.CheckBoxItem(); CheckBox.Name = NextFile.Name; CheckBox.Text = NextFile.Name; for (int i = 0; i < SelectStylePath.Length; i++) { string FileName = System.IO.Path.GetFileName(SelectStylePath[i]); if (FileName == CheckBox.Text && FileName != null) { CheckBox.Checked = true; } } BaseItem[N] = CheckBox; N++; } this.itemPanelStyleList.Items.AddRange(BaseItem); this.itemPanelStyleList.Refresh(); }
/// <summary> /// Copies the ProgressBarItem specific properties to new instance of the item. /// </summary> /// <param name="copy">New ProgressBarItem instance.</param> protected override void CopyToItem(BaseItem copy) { CircularProgressItem objCopy = copy as CircularProgressItem; base.CopyToItem(objCopy); }
public static ItemContainer CreateItemContainer(IDesignerServices designer, BaseItem parent, eOrientation containerOrientation) { IDesignerHost dh=designer.GetService(typeof(IDesignerHost)) as IDesignerHost; IComponentChangeService cc=designer.GetService(typeof(IComponentChangeService)) as IComponentChangeService; if(dh==null || parent==null || cc==null) return null; ItemContainer c=null; DesignerTransaction trans=dh.CreateTransaction("New DotNetBar Item Container"); try { c=dh.CreateComponent(typeof(ItemContainer)) as ItemContainer; TypeDescriptor.GetProperties(c)["LayoutOrientation"].SetValue(c,containerOrientation); cc.OnComponentChanging(parent,TypeDescriptor.GetProperties(c)["SubItems"]); parent.SubItems.Add(c); cc.OnComponentChanged(parent,TypeDescriptor.GetProperties(c)["SubItems"],null,null); } finally { if(!trans.Canceled) trans.Commit(); } return c; }
private void Escaneo_Load(object sender, EventArgs e) { try { if (devices.Count != 0) { DevComponents.DotNetBar.BaseItem[] botones = new DevComponents.DotNetBar.BaseItem[devices.Count]; int i = 0; foreach (string device in devices) { botones[i] = new DevComponents.DotNetBar.ButtonItem(); botones[i].Text = device.Split('|')[0]; botones[i].Click += new System.EventHandler(this.seleccionarEscaner); i++; } btnEscaners.SubItems.AddRange(botones); } else { btnEscaners.SubItems.Add(new DevComponents.DotNetBar.ButtonItem("btnConectados", "No hay escaners conectados")); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
//更新格网列表 private void UpdateGridsListBox() { try { if (MapGrids != null) { if (itemPanelGrids.Items.Count == 0) { DevComponents.DotNetBar.BaseItem[] BaseItem = new DevComponents.DotNetBar.BaseItem[MapGrids.MapGridCount]; for (int i = 0; i < MapGrids.MapGridCount; i++) { DevComponents.DotNetBar.CheckBoxItem CheckBox = new DevComponents.DotNetBar.CheckBoxItem(); CheckBox.Name = MapGrids.get_MapGrid(i).Name; CheckBox.Text = MapGrids.get_MapGrid(i).Name; if (MapGrids.get_MapGrid(i).Visible == true) { CheckBox.Checked = true; } else { CheckBox.Checked = false; } //MapGrids.get_MapGrid(i).Visible = false; BaseItem[i] = CheckBox; } this.itemPanelGrids.Items.AddRange(BaseItem); this.itemPanelGrids.Refresh(); } } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
protected override void CopyToItem(BaseItem copy) { ColorItem ci = copy as ColorItem; base.CopyToItem(ci); ci.DesiredSize = this.DesiredSize; ci.Color = this.Color; ci.Border = this.Border; }
public override void RecordSetting(BaseItem item) { if (this.SettingsRecorded) return; ItemContainer cont = item as ItemContainer; m_MultiLine = cont.MultiLine; m_LayoutOrientation = cont.LayoutOrientation; base.RecordSetting(item); }
protected override void CopyToItem(BaseItem copy) { DockContainerItem objCopy=copy as DockContainerItem; base.CopyToItem(objCopy); objCopy.SetImageIndex(m_ImageIndex); if(m_Icon!=null) objCopy.Icon=m_Icon.Clone() as Icon; if(objCopy.Image!=null) objCopy.Image=m_Image.Clone() as Image; objCopy.ContainerLoadControl=this.ContainerLoadControl; objCopy.InitControl(); }
/// <summary> /// 加载子菜单 /// </summary> /// <param name="menuId">父菜单Id</param> /// <param name="patientItem">父菜单控件</param> /// <param name="menuData">菜单数据</param> private void AddSubMenu(int menuId, BaseItem patientItem, List<BaseMenu> allmenus) { List<BaseMenu> mainMenu = allmenus.FindAll(x => x.PMenuId == menuId).OrderBy(x => x.SortId).ToList(); foreach (BaseMenu menu in mainMenu) { AddToolMenu(menu); BaseItem bottonItem = new ButtonItem(menu.MenuId.ToString(), menu.Name); bottonItem.Tag = menu; AddSubMenu(menu.MenuId, bottonItem, allmenus); patientItem.SubItems.Add(bottonItem); } }
/// <summary> /// Initializes a new instance of the BaseItemController class. /// </summary> /// <param name="item"></param> /// <param name="parentControl"></param> public BaseItemController(BaseItem item, Control parentControl) { _Item = item; _ParentControl = parentControl; _ParentControl.MouseDown += new MouseEventHandler(ParentControlMouseDown); _ParentControl.MouseEnter += new EventHandler(ParentControlMouseEnter); _ParentControl.MouseMove += new MouseEventHandler(ParentControlMouseMove); _ParentControl.MouseUp += new MouseEventHandler(ParentControlMouseUp); _ParentControl.MouseLeave += new EventHandler(ParentControlMouseLeave); _ParentControl.Paint += new PaintEventHandler(ParentControlPaint); _Item.ContainerControl = _ParentControl; }
/// <summary> /// Copies the ButtonItem specific properties to new instance of the item. /// </summary> /// <param name="copy">New ButtonItem instance.</param> protected override void CopyToItem(BaseItem instanceCopy) { LogItem copy = instanceCopy as LogItem; base.CopyToItem(instanceCopy); copy.BackColor = this.BackColor; copy.Created = this.Created; copy.HeaderTextColor = this.HeaderTextColor; if (this.Image != null) copy.Image = (Image) this.Image.Clone(); copy.ImagePosition = this.ImagePosition; copy.SourceName = this.SourceName; copy.TextColor = this.TextColor; }
public override void RecordSetting(BaseItem item) { if (this.SettingsRecorded) return; ButtonItem button = item as ButtonItem; m_ButtonStyle = button.ButtonStyle; m_ImagePosition = button.ImagePosition; m_ImageFixedSize = button.ImageFixedSize; if (button.TextMarkupBody != null && button.TextMarkupBody.HasExpandElement) m_Text = button.Text; base.RecordSetting(item); }
protected internal override void OnItemAdded(BaseItem objItem) { base.OnItemAdded(objItem); ImageItem objImageItem=objItem as ImageItem; if(objImageItem!=null) { Size newSize = m_SubItemsImageSize; if(objImageItem.ImageSize.Width>m_SubItemsImageSize.Width) newSize.Width = objImageItem.ImageSize.Width; if(objImageItem.ImageSize.Height>m_SubItemsImageSize.Height) newSize.Height = objImageItem.ImageSize.Height; this.SubItemsImageSize = newSize; } }
/// <summary> /// Copies the RadialMenuItem specific properties to new instance of the item. /// </summary> /// <param name="copy">New RadialMenuItem instance.</param> protected override void CopyToItem(BaseItem copy) { base.CopyToItem(copy); RadialMenuContainer item = copy as RadialMenuContainer; item.BackButtonSymbol = _BackSymbol; item.BackButtonSymbolSize = _BackSymbolSize; item.CenterButtonDiameter = _CenterButtonDiameter; item.Colors.Apply(_Colors); item.Diameter = _Diameter; item.MenuLocation = _MenuLocation; item.MenuType = _MenuType; item.SubMenuEdgeItemSpacing = _SubMenuEdgeItemSpacing; item.SubMenuEdgeWidth = _SubMenuEdgeWidth; }
public virtual int Add(BaseItem item, int Position) { int iRet=Position; if (this.Contains(item)) { return this.IndexOf(item); } if(Position>=0) List.Insert(Position,item); else iRet=List.Add(item); return iRet; }
public void AddCopy(BaseItem objItem) { if(objItem==null) throw new System.ArgumentNullException("Item must be valid value"); if(objItem.Name==null || objItem.Name=="") { // Auto assign item name objItem.Name="item_"+objItem.Id.ToString(); } if(m_Items.ContainsKey(objItem.Name)) throw new System.InvalidOperationException("Item with this name already exists"); BaseItem objCopy=objItem.Copy(); objCopy.SetOwner(m_Owner); objCopy.GlobalItem=true; m_Items.Add(objCopy.Name,objCopy); }
internal int _Add(BaseItem item) { m_IgnoreEvents=true; m_AllowParentRemove=false; int i=0; try { i=List.Add(item); } finally { m_IgnoreEvents=false; m_AllowParentRemove=true; } return i; }
protected override void OnItemAdded(DevComponents.DotNetBar.BaseItem item) { switch (item.Text) { case "Theme Colors": item.Text = "主题颜色"; break; case "Standard Colors": item.Text = "基本颜色"; break; case "&More Colors...": item.Text = "更多颜色..."; break; } }
internal void _Add(BaseItem item, int Position) { m_IgnoreEvents=true; m_AllowParentRemove=false; try { if (Position >= 0) List.Insert(Position, item); else List.Add(item); } finally { m_IgnoreEvents=false; m_AllowParentRemove=true; } }
/// <summary> /// Copies the ProgressBarItem specific properties to new instance of the item. /// </summary> /// <param name="copy">New ProgressBarItem instance.</param> protected override void CopyToItem(BaseItem copy) { ProgressBarItem objCopy = copy as ProgressBarItem; base.CopyToItem(objCopy); objCopy.Minimum = this.Minimum; objCopy.Maximum = this.Maximum; objCopy.Step = this.Step; objCopy.TextVisible = this.TextVisible; objCopy.Width = this.Width; objCopy.Style = this.Style; objCopy.Value = this.Value; objCopy.ChunkColor = ChunkColor; objCopy.ChunkColor2 = ChunkColor2; objCopy.ChunkGradientAngle = ChunkGradientAngle; objCopy.ColorTable = ColorTable; }
public void Paint(BaseItem container, ItemPaintArgs p) { foreach (BaseItem item in container.SubItems) { if (item.Visible && item.Displayed) { if (p.ClipRectangle.IsEmpty || p.ClipRectangle.IntersectsWith(item.DisplayRectangle)) { Region oldClip = p.Graphics.Clip; //.Clone() as Region; p.Graphics.SetClip(item.DisplayRectangle, CombineMode.Intersect); item.Paint(p); p.Graphics.Clip = oldClip; if (oldClip != null) oldClip.Dispose(); } } } }
public void Add(BaseItem objItem) { if(objItem==null) throw new System.ArgumentNullException("Item must be valid value"); if(objItem.Name==null || objItem.Name=="") { // Auto assign item name objItem.Name="item_"+objItem.Id.ToString(); } if(m_Items.ContainsKey(objItem.Name)) { throw new System.InvalidOperationException("Item with this name already exists"); } if(objItem.Parent!=null) throw new System.InvalidOperationException("Item already has a Parent. Remove item from Parent first."); objItem.SetOwner(m_Owner); objItem.GlobalItem=true; m_Items.Add(objItem.Name,objItem); }
public void Remove(BaseItem objItemToRemove) { if(m_Items.ContainsKey(objItemToRemove.Name)) { m_Items.Remove(objItemToRemove.Name); objItemToRemove.SetOwner(null); ((IOwner)m_Owner).RemoveShortcutsFromItem(objItemToRemove); //objItemToRemove.GlobalItem=false; return; } string sItemName=objItemToRemove.Name; foreach(DictionaryEntry o in m_Items) { BaseItem objItem=o.Value as BaseItem; // Name out of sync case if(objItem==objItemToRemove) { m_Items.RemoveAt(m_Items.IndexOfValue(objItem)); objItemToRemove.SetOwner(null); ((IOwner)m_Owner).RemoveShortcutsFromItem(objItemToRemove); return; } if(objItem.SubItems.Count>0) { if(RemoveItem(sItemName,objItem)) { //objItemToRemove.GlobalItem=false; return; } } } // This will throw exception... m_Items.Remove(objItemToRemove.Name); objItemToRemove.SetOwner(null); }
private void ColorSelected() { DevComponents.DotNetBar.PopupContainerControl ctrl = this.Parent as DevComponents.DotNetBar.PopupContainerControl; if (ctrl == null) { return; } // Change the Parent Item image to indicate which color was selected last // Assumes that Image with ImageIndex 21 is used on button DevComponents.DotNetBar.ButtonItem btn = ctrl.ParentItem as DevComponents.DotNetBar.ButtonItem; Bitmap bmp = new Bitmap(btn.Image); Graphics g = Graphics.FromImage(bmp); g.DrawImageUnscaled(btn.Image, 0, 0); using (SolidBrush brush = new SolidBrush(this.SelectedColor)) g.FillRectangle(brush, 0, 12, 16, 4); g.Dispose(); btn.ImageIndex = -1; DevComponents.DotNetBar.DotNetBarManager manager = null; if (btn.ContainerControl is DevComponents.DotNetBar.Bar) { manager = ((DevComponents.DotNetBar.Bar)btn.ContainerControl).Owner as DevComponents.DotNetBar.DotNetBarManager; } else if (btn.ContainerControl is DevComponents.DotNetBar.MenuPanel) { manager = ((DevComponents.DotNetBar.MenuPanel)btn.ContainerControl).Owner as DevComponents.DotNetBar.DotNetBarManager; } if (manager != null && btn.Name != "") { ArrayList items = manager.GetItems(btn.Name, true); foreach (DevComponents.DotNetBar.ButtonItem item in items) { item.Image = bmp; } } else { btn.Image = bmp; } if (btn.ContainerControl is RibbonBar) { ((RibbonBar)btn.ContainerControl).RecalcLayout(); } if (btn.IsOnMenu) { DevComponents.DotNetBar.BaseItem topItem = ctrl.ParentItem; while (topItem.Parent is DevComponents.DotNetBar.ButtonItem) { topItem = topItem.Parent; } topItem.Expanded = false; if (topItem.Parent != null) { topItem.Parent.AutoExpand = false; } } else { btn.Expanded = false; } }
private bool AnyVisibleSubItems(BaseItem item) { if (!item.ShowSubItems) return false; foreach (BaseItem t in item.SubItems) { if (t.Visible) return true; } return false; }
private BaseItem GetExpandedItemRecursevly(BaseItem item) { foreach (BaseItem sub in item.SubItems) { if (sub.Expanded) { BaseItem inner = GetExpandedItemRecursevly(sub); if (inner != null) return inner; return sub; } } return null; }
private void SetContainerRecursevly(BaseItem item, object newContainer) { foreach (BaseItem c in item.SubItems) { c.ContainerControl = newContainer; SetContainerRecursevly(c, newContainer); } }
protected internal override void OnSubItemExpandChange(BaseItem item) { NeedRecalcSize = true; if (this.Expanded) { if (_CurrentStoryline == null || _CurrentStoryline.IsDisposed) { WaitForCurrentAnimationToComplete(); RunExpandItemAnimation(); } else this.Invalidate(); } HotSubItemInfoIndex = -1; base.OnSubItemExpandChange(item); }
protected override void WndProc(ref Message m) { if (m.Msg == NativeFunctions.WM_THEMECHANGED) { this.RefreshThemes(); } else if (m.Msg == NativeFunctions.WM_USER + 107) { if (m_DoDefaultActionItem != null) { if (!m_DoDefaultActionItem._AccessibleExpandAction) this.PerformClick(); m_DoDefaultActionItem.DoAccesibleDefaultAction(); m_DoDefaultActionItem = null; } } base.WndProc(ref m); }
bool IMessageHandlerClient.OnMouseDown(IntPtr hWnd, IntPtr wParam, IntPtr lParam) { if (m_RegisteredPopups.Count == 0) return false; BaseItem[] popups = new BaseItem[m_RegisteredPopups.Count]; m_RegisteredPopups.CopyTo(popups); for (int i = popups.Length - 1; i >= 0; i--) { PopupItem objPopup = popups[i] as PopupItem; bool bChildHandle = objPopup.IsAnyOnHandle(hWnd); if (!bChildHandle) { System.Windows.Forms.Control cTmp = System.Windows.Forms.Control.FromChildHandle(hWnd); if (cTmp != null) { if (cTmp is MenuPanel) { bChildHandle = true; } else { while (cTmp.Parent != null) { cTmp = cTmp.Parent; if (cTmp.GetType().FullName.IndexOf("DropDownHolder") >= 0 || cTmp is MenuPanel || cTmp is PopupContainerControl) { bChildHandle = true; break; } } } if (!bChildHandle) bChildHandle = objPopup.IsAnyOnHandle(cTmp.Handle); } else { string s = NativeFunctions.GetClassName(hWnd); s = s.ToLower(); if (s.IndexOf("combolbox") >= 0) bChildHandle = true; } } if (!bChildHandle) { Control popupContainer = objPopup.PopupControl; if (popupContainer != null) while (popupContainer.Parent != null) popupContainer = popupContainer.Parent; if (popupContainer != null && popupContainer.Bounds.Contains(Control.MousePosition)) bChildHandle = true; } if (bChildHandle) break; if (objPopup.Displayed) { // Do not close if mouse is inside the popup parent button Point p = this.PointToClient(MousePosition); if (objPopup.DisplayRectangle.Contains(p)) break; } if (this.GetDesignMode()) { this.GetDelayClose().DelayClose(objPopup); } else objPopup.ClosePopup(); if (m_RegisteredPopups.Count == 0) break; } if (m_RegisteredPopups.Count == 0) this.MenuFocus = false; return false; }
private void BarItemClick(object sender, EventArgs e) { DevComponents.DotNetBar.BaseItem item = sender as DevComponents.DotNetBar.BaseItem; MessageBox.Show("Item '" + item.Text + "' clicked."); }
private void CollapseRecursively(BaseItem item) { foreach (BaseItem sub in item.SubItems) { sub.Expanded = false; CollapseRecursively(sub); } }
private Control GetContainerControl(BaseItem item) { object container = item.ContainerControl; if (container is BaseItem) container = ((BaseItem)container).ContainerControl; return container as Control; }
private void ExecuteDevCommand(object sender) { if (sender == null) { return; } DevComponents.DotNetBar.BaseItem vItem = sender as DevComponents.DotNetBar.BaseItem; string strToolStripName = vItem.Name.ToLower(); ESRI.ArcGIS.SystemUI.ICommand pCommand = null; switch (strToolStripName) { case "bttdefaulttool": pCommand = new Tools.ControlsDefaultTool(); break; case "bttselection": //打开文档 pCommand = new ControlsSelectFeaturesToolClass(); break; case "bttclearselection": pCommand = new ControlsClearSelectionCommandClass(); break; case "bttzoomintool": pCommand = new ControlsMapZoomInToolClass(); break; case "bttzoomouttool": pCommand = new ControlsMapZoomOutToolClass(); break; case "bttpantool": pCommand = new ControlsMapPanToolClass(); break; case "bttzoominfixedcommand": pCommand = new ControlsMapZoomInFixedCommandClass(); break; case "bttzoomoutfixedcommand": pCommand = new ControlsMapZoomOutFixedCommandClass(); break; case "bttrefreshviewcommand": pCommand = new ControlsMapRefreshViewCommandClass(); break; case "bttfullextentcommand": pCommand = new ControlsMapFullExtentCommandClass(); break; case "bttzoomtolastextentbackcommand": pCommand = new ControlsMapZoomToLastExtentBackCommandClass(); break; case "bttzoomtolastextentforwardcommand": pCommand = new ControlsMapZoomToLastExtentForwardCommandClass(); break; case "bttstartedit": if (CreateShape.m_CurrentLayer != null) { pCommand = new Command.ControlsStartEditCommand(); } break; case "bttsaveedit": if (CreateShape.m_CurrentLayer != null) { pCommand = new Command.ControlsSaveEditCommand(axMapControl1); } break; case "bttstopedit": if (CreateShape.m_CurrentLayer != null) { axMapControl1.CurrentTool = null; axMapControl1.MousePointer = esriControlsMousePointer.esriPointerDefault; pCommand = new Command.ControlsStopEditCommand(axMapControl1); } break; case "buttsketchup": if (CreateShape.m_CurrentLayer != null && CreateShape.pWorkspaceEdit != null) { if (CreateShape.pWorkspaceEdit.IsBeingEdited()) { axMapControl1.CurrentTool = null; pCommand = new Tools.SketChupTool(axMapControl1); } } break; case "bttnundo": if (CreateShape.m_CurrentLayer != null && CreateShape.pWorkspaceEdit != null) { if (CreateShape.pWorkspaceEdit.IsBeingEdited()) { pCommand = new Command.ControlsUndoEditCommand(axMapControl1); } } break; case "bttnredo": if (CreateShape.m_CurrentLayer != null && CreateShape.pWorkspaceEdit != null) { if (CreateShape.pWorkspaceEdit.IsBeingEdited()) { pCommand = new Command.ControlsRedoEditCommand(axMapControl1); } } break; case "bttndelete": if (CreateShape.m_CurrentLayer != null && CreateShape.pWorkspaceEdit != null) { if (CreateShape.pWorkspaceEdit.IsBeingEdited()) { pCommand = new Command.ControlsDeleteSelectedFeaturesCommand(axMapControl1); } } break; case "bttadddata": pCommand = new Command.ControlsAddDataCommand(axMapControl1); break; case "bttopendoc": pCommand = new Command.ControlsOpenMxdDocCommand(axMapControl1); break; case "bttsave": pCommand = new Command.ControlsSaveMxdDocCommand(); break; case "bttsaveas": pCommand = new Command.ControlsSaveasMxdDocCommand(); break; case "bttcut": pCommand = new ControlsEditingCutCommandClass(); break; case "bttcopy": pCommand = new ControlsEditingCopyCommandClass(); break; case "bttpast": pCommand = new ControlsEditingPasteCommandClass(); break; case "bttdelete": pCommand = new ControlsEditingClearCommandClass(); break; case "bttexitmxddoc": pCommand = new Command.ControlsExitMxdDocCommand(this); break; } if (pCommand == null) { return; } pCommand.OnCreate(this.axMapControl1.Object); if (pCommand is ITool) { this.axMapControl1.CurrentTool = pCommand as ITool; } else { try { pCommand.OnClick(); } catch { MessageBox.Show("未启动编辑", "提示!"); } } }