/// <summary> /// 装载工具栏,读取配置文件的分类信息,并在ExplorerBarGroup中显示分类的名称 /// </summary> public void LoadToolBox() { // string path = Path.Combine(this.designPath, PublicVariable.ToolConfigFileName); toolXML.Load(Path.Combine(this.designPath, PublicVariable.ToolConfigFileName)); this.explorerBarTool.Groups.Clear(); if (toolXML.FirstChild != null) { for (int i = 0; i < toolXML.FirstChild.ChildNodes.Count; i++) { if (toolXML.FirstChild.ChildNodes[i] != null && toolXML.FirstChild.ChildNodes[i].Attributes[0].InnerText != null && toolXML.FirstChild.ChildNodes[i].Attributes[0].InnerText != CassViewGenerator.SpecialCodeNode) { ExplorerBarGroup catGroup = new ExplorerBarGroup(toolXML.FirstChild.ChildNodes[i].Attributes[0].InnerText); this.explorerBarTool.Groups.Add(catGroup); for (int j = 0; j < toolXML.FirstChild.ChildNodes[i].ChildNodes.Count; j++) { if (toolXML.FirstChild.ChildNodes[i].ChildNodes[j] != null) { string[] assemblyClass = toolXML.FirstChild.ChildNodes[i].ChildNodes[j].Attributes[0].InnerText.Split(new char[] { ',' }); Type toolboxItemType = GetTypeFromLoadedAssembly(assemblyClass[0], assemblyClass[1]); ToolboxItem toolItem = new ToolboxItem(toolboxItemType); //表示“工具箱”中的项 ExplorerBarItem barItem = new ExplorerBarItem(toolItem.DisplayName); barItem.Image = (Image)global::CaVeGen.Properties.Resources.ResourceManager.GetObject(assemblyClass[2]); barItem.Tag = assemblyClass; barItem.Text = " " + assemblyClass[2]; if (toolXML.FirstChild.ChildNodes[i].ChildNodes[j].LastChild.Name == "OtherInfo") { if (toolXML.FirstChild.ChildNodes[i].ChildNodes[j].LastChild.ChildNodes.Count == 3) {//控件描述信息 barItem.ToolTipText = toolXML.FirstChild.ChildNodes[i].ChildNodes[j].LastChild.ChildNodes[1].InnerText; } } catGroup.Items.Add(barItem); } //end if (toolXML.FirstChild.ChildNodes[i].ChildNodes[j] != null) } //end for (int j = 0; j < toolXML.FirstChild.ChildNodes[i].ChildNodes.Count; j++) } //end if (toolXML.FirstChild.ChildNodes[i] != null) else if (toolXML.FirstChild.ChildNodes[i].Attributes[0].InnerText == CassViewGenerator.SpecialCodeNode) { foreach (XmlNode node in toolXML.FirstChild.ChildNodes[i].ChildNodes) { if (node.Attributes["name"].InnerText != "头文件") { CaVeGen.DesignViewFiles.CodeEditor.PLCCodeEditor.SpecialCode.Add(node.Attributes["varname"].InnerText.ToUpper(), node.Attributes["name"].InnerText); } } } } //end for (int i = 0; i < toolXML.FirstChild.ChildNodes.Count; i++) } //end if (toolXML.FirstChild != null) } //end function void LoadToolBox()
/// <summary> /// 该函数中实现了对工具栏中的某项进行拖拉时,创建新该项新的对象,并将其放置到鼠标位置所在的设计器容器中 /// </summary> /// <param name="sender">事件主体</param> /// <param name="e">触发的事件类型</param> private void explorerBarTool_MouseDown(object sender, MouseEventArgs e) { Type toolboxItemType = null; ToolboxItem toolItem; ExplorerBarItem node = new ExplorerBarItem(); try { CassViewGenerator.listViewSelectIndex = -1; //表明设计器识别不是从Listview中拖出的对象 if (sender is ExplorerBar && e.Clicks < PublicVariable.DClick) { ExplorerBarItem clickedNode = explorerBarTool.GetItemAt(e.X, e.Y); if (clickedNode != null) { typeNameString = (string[])clickedNode.Tag; //重新生成ToolboxItem类型变量 toolboxItemType = GetTypeFromLoadedAssembly(typeNameString[0], typeNameString[1]); toolItem = new ToolboxItem(toolboxItemType); DataObject dataObj = SerializeToolboxItem(toolItem) as DataObject; //创建对象 DoDragDrop(dataObj, DragDropEffects.Copy); } } } catch (Exception ex) { } }
/// <summary> /// �ú�����ʵ���˶Թ������е�ij���������ʱ�������¸����µĶ���������õ����λ�����ڵ������������ /// </summary> /// <param name="sender">�¼�����</param> /// <param name="e">�������¼�����</param> private void explorerBarTool_MouseDown(object sender, MouseEventArgs e) { Type toolboxItemType = null; ToolboxItem toolItem; ExplorerBarItem node = new ExplorerBarItem(); try { CassViewGenerator.listViewSelectIndex = -1; //���������ʶ���Ǵ�Listview���ϳ��Ķ��� if (sender is ExplorerBar && e.Clicks < PublicVariable.DClick) { ExplorerBarItem clickedNode = explorerBarTool.GetItemAt(e.X, e.Y); if (clickedNode != null) { typeNameString = (string[])clickedNode.Tag; //��������ToolboxItem���ͱ��� toolboxItemType = GetTypeFromLoadedAssembly(typeNameString[0], typeNameString[1]); toolItem = new ToolboxItem(toolboxItemType); DataObject dataObj = SerializeToolboxItem(toolItem) as DataObject; //�������� DoDragDrop(dataObj, DragDropEffects.Copy); } } } catch (Exception ex) { } }
/// <summary> /// װ�ع�����,��ȡ�����ļ��ķ�����Ϣ������ExplorerBarGroup����ʾ��������� /// </summary> public void LoadToolBox() { // string path = Path.Combine(this.designPath, PublicVariable.ToolConfigFileName); toolXML.Load(Path.Combine(this.designPath, PublicVariable.ToolConfigFileName)); this.explorerBarTool.Groups.Clear(); if (toolXML.FirstChild != null) { for (int i = 0; i < toolXML.FirstChild.ChildNodes.Count; i++) { if (toolXML.FirstChild.ChildNodes[i] != null && toolXML.FirstChild.ChildNodes[i].Attributes[0].InnerText != null && toolXML.FirstChild.ChildNodes[i].Attributes[0].InnerText != CassViewGenerator.SpecialCodeNode) { ExplorerBarGroup catGroup = new ExplorerBarGroup(toolXML.FirstChild.ChildNodes[i].Attributes[0].InnerText); this.explorerBarTool.Groups.Add(catGroup); for (int j = 0; j < toolXML.FirstChild.ChildNodes[i].ChildNodes.Count; j++) { if (toolXML.FirstChild.ChildNodes[i].ChildNodes[j] != null) { string[] assemblyClass = toolXML.FirstChild.ChildNodes[i].ChildNodes[j].Attributes[0].InnerText.Split(new char[] { ',' }); Type toolboxItemType = GetTypeFromLoadedAssembly(assemblyClass[0], assemblyClass[1]); ToolboxItem toolItem = new ToolboxItem(toolboxItemType); //��ʾ�������䡱�е��� ExplorerBarItem barItem = new ExplorerBarItem(toolItem.DisplayName); barItem.Image = (Image)global::CaVeGen.Properties.Resources.ResourceManager.GetObject(assemblyClass[2]); barItem.Tag = assemblyClass; barItem.Text = " "+assemblyClass[2]; if (toolXML.FirstChild.ChildNodes[i].ChildNodes[j].LastChild.Name == "OtherInfo") { if (toolXML.FirstChild.ChildNodes[i].ChildNodes[j].LastChild.ChildNodes.Count == 3) {//�ؼ�������Ϣ barItem.ToolTipText = toolXML.FirstChild.ChildNodes[i].ChildNodes[j].LastChild.ChildNodes[1].InnerText; } } catGroup.Items.Add(barItem); }//end if (toolXML.FirstChild.ChildNodes[i].ChildNodes[j] != null) }//end for (int j = 0; j < toolXML.FirstChild.ChildNodes[i].ChildNodes.Count; j++) }//end if (toolXML.FirstChild.ChildNodes[i] != null) else if (toolXML.FirstChild.ChildNodes[i].Attributes[0].InnerText == CassViewGenerator.SpecialCodeNode) { foreach (XmlNode node in toolXML.FirstChild.ChildNodes[i].ChildNodes) { if (node.Attributes["name"].InnerText != "ͷ�ļ�") { CaVeGen.DesignViewFiles.CodeEditor.PLCCodeEditor.SpecialCode.Add(node.Attributes["varname"].InnerText.ToUpper(), node.Attributes["name"].InnerText); } } } }//end for (int i = 0; i < toolXML.FirstChild.ChildNodes.Count; i++) }//end if (toolXML.FirstChild != null) }