void toolBox_MouseDown(object sender, MouseEventArgs e) { try { GListBox lbSender = sender as GListBox; Rectangle lastSelectedBounds = lbSender.GetItemRectangle(0); try { lastSelectedBounds = lbSender.GetItemRectangle(selectedIndex); } catch (Exception ex) { ex.ToString(); } selectedIndex = lbSender.IndexFromPoint(e.X, e.Y); // change our selection lbSender.SelectedIndex = selectedIndex; lbSender.Invalidate(lastSelectedBounds); // clear highlight from last selection lbSender.Invalidate(lbSender.GetItemRectangle(selectedIndex)); // highlight new one if (selectedIndex != 0) { if (e.Clicks == 2) { IDesignerHost idh = (IDesignerHost)this._surface.GetService(typeof(IDesignerHost)); IToolboxUser tbu = idh.GetDesigner(idh.RootComponent as IComponent) as IToolboxUser; if (tbu != null) { GListBoxItem gbi = lbSender.Items[selectedIndex] as GListBoxItem; tbu.ToolPicked((System.Drawing.Design.ToolboxItem)(gbi.toolBoxItem)); } } else if (e.Clicks < 2) { GListBoxItem gbi = lbSender.Items[selectedIndex] as GListBoxItem; System.Drawing.Design.ToolboxItem tbi = gbi.toolBoxItem; IToolboxService tbs = this; // The IToolboxService serializes ToolboxItems by packaging them in DataObjects. DataObject d = tbs.SerializeToolboxItem(tbi) as DataObject; try { lbSender.DoDragDrop(d, DragDropEffects.Copy); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } catch (Exception ex) { ex.ToString(); } }
public SheetToolboxService(DesignSurface surface, int Query) { _surface = surface; toolBox = new GListBox(); ImageList imageList = new ImageList(); imageList.Images.Add(Properties.Resources.point); imageList.Images.Add(Properties.Resources.label); imageList.Images.Add(Properties.Resources.textbox); imageList.Images.Add(Properties.Resources.combobox); imageList.Images.Add(Properties.Resources.check); imageList.Images.Add(Properties.Resources.picture); imageList.Images.Add(Properties.Resources.foreignKey); toolBox.ImageList = imageList; GListBoxItem pointer = new GListBoxItem(0, null); pointer.toolBoxItem.DisplayName = "Pointer"; toolBox.Items.Add(pointer); pointer = new GListBoxItem(1, typeof(LabelEx)); pointer.toolBoxItem.DisplayName = "Label"; toolBox.Items.Add(pointer); pointer = new GListBoxItem(2, typeof(TextBoxEx)); pointer.toolBoxItem.DisplayName = "TextBox"; toolBox.Items.Add(pointer); pointer = new GListBoxItem(3, typeof(ComboBoxEx)); pointer.toolBoxItem.DisplayName = "ComboBox"; toolBox.Items.Add(pointer); pointer = new GListBoxItem(4, typeof(CheckBoxEx)); pointer.toolBoxItem.DisplayName = "CheckBox"; toolBox.Items.Add(pointer); if (Query == 0)//不是查询条件设计器 { pointer = new GListBoxItem(5, typeof(FileDisplay)); pointer.toolBoxItem.DisplayName = "FileDisplay";// toolBox.Items.Add(pointer); pointer = new GListBoxItem(6, typeof(ForeignKeyCtrlEx)); pointer.toolBoxItem.DisplayName = "ForeignKeyBox"; toolBox.Items.Add(pointer); pointer = new GListBoxItem(7, typeof(GroupBoxEx)); pointer.toolBoxItem.DisplayName = "GroupBoxEx"; toolBox.Items.Add(pointer); pointer = new GListBoxItem(8, typeof(RadioButtonEx)); pointer.toolBoxItem.DisplayName = "RadioButtonEx"; toolBox.Items.Add(pointer); pointer = new GListBoxItem(9, typeof(NumericUpDownEx)); pointer.toolBoxItem.DisplayName = "NumericUpDownEx"; toolBox.Items.Add(pointer); } toolBox.MouseDown += new MouseEventHandler(toolBox_MouseDown); }