diff --git a/Reseter2/Form1.Designer.cs b/Reseter2/Form1.Designer.cs index 8bff8dc..438b110 100644 --- a/Reseter2/Form1.Designer.cs +++ b/Reseter2/Form1.Designer.cs @@ -38,6 +38,11 @@ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.tabPage2 = new System.Windows.Forms.TabPage(); this.flow_words = new System.Windows.Forms.FlowLayoutPanel(); + this.cm_words = new System.Windows.Forms.ContextMenuStrip(this.components); + this.mi_newitem = new System.Windows.Forms.ToolStripMenuItem(); + this.mi_edit = new System.Windows.Forms.ToolStripMenuItem(); + this.mi_delete = new System.Windows.Forms.ToolStripMenuItem(); + this.перезагрузитьОдинToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.tabPage3 = new System.Windows.Forms.TabPage(); this.button1 = new System.Windows.Forms.Button(); this.label6 = new System.Windows.Forms.Label(); @@ -49,17 +54,14 @@ this.sm_RebootItem = new System.Windows.Forms.ToolStripMenuItem(); this.sm_SaveItem = new System.Windows.Forms.ToolStripMenuItem(); this.tabPage4 = new System.Windows.Forms.TabPage(); - this.cm_words = new System.Windows.Forms.ContextMenuStrip(this.components); - this.mi_newitem = new System.Windows.Forms.ToolStripMenuItem(); - this.mi_edit = new System.Windows.Forms.ToolStripMenuItem(); - this.mi_delete = new System.Windows.Forms.ToolStripMenuItem(); - this.перезагрузитьОдинToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.bt_wordsBilder = new System.Windows.Forms.Button(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage2.SuspendLayout(); + this.cm_words.SuspendLayout(); this.tabPage3.SuspendLayout(); this.cm_history.SuspendLayout(); - this.cm_words.SuspendLayout(); + this.tabPage4.SuspendLayout(); this.SuspendLayout(); // // tb_comp @@ -153,6 +155,41 @@ this.flow_words.Size = new System.Drawing.Size(396, 682); this.flow_words.TabIndex = 0; // + // cm_words + // + this.cm_words.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mi_newitem, + this.mi_edit, + this.mi_delete, + this.перезагрузитьОдинToolStripMenuItem}); + this.cm_words.Name = "cm_words"; + this.cm_words.Size = new System.Drawing.Size(185, 92); + // + // mi_newitem + // + this.mi_newitem.Name = "mi_newitem"; + this.mi_newitem.Size = new System.Drawing.Size(184, 22); + this.mi_newitem.Text = "Новый элемент"; + this.mi_newitem.Click += new System.EventHandler(this.mi_newitem_Click); + // + // mi_edit + // + this.mi_edit.Name = "mi_edit"; + this.mi_edit.Size = new System.Drawing.Size(184, 22); + this.mi_edit.Text = "Изменить"; + // + // mi_delete + // + this.mi_delete.Name = "mi_delete"; + this.mi_delete.Size = new System.Drawing.Size(184, 22); + this.mi_delete.Text = "Удалить"; + // + // перезагрузитьОдинToolStripMenuItem + // + this.перезагрузитьОдинToolStripMenuItem.Name = "перезагрузитьОдинToolStripMenuItem"; + this.перезагрузитьОдинToolStripMenuItem.Size = new System.Drawing.Size(184, 22); + this.перезагрузитьОдинToolStripMenuItem.Text = "Перезагрузить один"; + // // tabPage3 // this.tabPage3.Controls.Add(this.button1); @@ -261,6 +298,7 @@ // // tabPage4 // + this.tabPage4.Controls.Add(this.bt_wordsBilder); this.tabPage4.Location = new System.Drawing.Point(4, 22); this.tabPage4.Name = "tabPage4"; this.tabPage4.Padding = new System.Windows.Forms.Padding(3); @@ -269,40 +307,15 @@ this.tabPage4.Text = "Настройки"; this.tabPage4.UseVisualStyleBackColor = true; // - // cm_words + // bt_wordsBilder // - this.cm_words.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mi_newitem, - this.mi_edit, - this.mi_delete, - this.перезагрузитьОдинToolStripMenuItem}); - this.cm_words.Name = "cm_words"; - this.cm_words.Size = new System.Drawing.Size(185, 114); - // - // mi_newitem - // - this.mi_newitem.Name = "mi_newitem"; - this.mi_newitem.Size = new System.Drawing.Size(180, 22); - this.mi_newitem.Text = "Новый элемент"; - this.mi_newitem.Click += new System.EventHandler(this.mi_newitem_Click); - // - // mi_edit - // - this.mi_edit.Name = "mi_edit"; - this.mi_edit.Size = new System.Drawing.Size(166, 22); - this.mi_edit.Text = "Изменить"; - // - // mi_delete - // - this.mi_delete.Name = "mi_delete"; - this.mi_delete.Size = new System.Drawing.Size(166, 22); - this.mi_delete.Text = "Удалить"; - // - // перезагрузитьОдинToolStripMenuItem - // - this.перезагрузитьОдинToolStripMenuItem.Name = "перезагрузитьОдинToolStripMenuItem"; - this.перезагрузитьОдинToolStripMenuItem.Size = new System.Drawing.Size(184, 22); - this.перезагрузитьОдинToolStripMenuItem.Text = "Перезагрузить один"; + this.bt_wordsBilder.Location = new System.Drawing.Point(102, 25); + this.bt_wordsBilder.Name = "bt_wordsBilder"; + this.bt_wordsBilder.Size = new System.Drawing.Size(155, 23); + this.bt_wordsBilder.TabIndex = 0; + this.bt_wordsBilder.Text = "Редактор справочника"; + this.bt_wordsBilder.UseVisualStyleBackColor = true; + this.bt_wordsBilder.Click += new System.EventHandler(this.bt_wordsBilder_Click); // // Form1 // @@ -318,10 +331,11 @@ this.tabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage2.ResumeLayout(false); + this.cm_words.ResumeLayout(false); this.tabPage3.ResumeLayout(false); this.tabPage3.PerformLayout(); this.cm_history.ResumeLayout(false); - this.cm_words.ResumeLayout(false); + this.tabPage4.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -354,6 +368,7 @@ private System.Windows.Forms.ToolStripMenuItem mi_edit; private System.Windows.Forms.ToolStripMenuItem mi_delete; private System.Windows.Forms.ToolStripMenuItem перезагрузитьОдинToolStripMenuItem; + private System.Windows.Forms.Button bt_wordsBilder; } } diff --git a/Reseter2/Form1.cs b/Reseter2/Form1.cs index 135cbba..6604255 100644 --- a/Reseter2/Form1.cs +++ b/Reseter2/Form1.cs @@ -139,5 +139,11 @@ namespace Reseter2 BilderWords bilderWords = new BilderWords(); bilderWords.ShowDialog(); } + + private void bt_wordsBilder_Click(object sender, EventArgs e) + { + BilderWords bilderWords = new BilderWords(); + bilderWords.ShowDialog(); + } } } diff --git a/Reseter2/Words/BilderWords.Designer.cs b/Reseter2/Words/BilderWords.Designer.cs index 0658d95..afc41e5 100644 --- a/Reseter2/Words/BilderWords.Designer.cs +++ b/Reseter2/Words/BilderWords.Designer.cs @@ -28,7 +28,7 @@ /// private void InitializeComponent() { - this.treeView1 = new System.Windows.Forms.TreeView(); + this.components = new System.ComponentModel.Container(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.panel1 = new System.Windows.Forms.Panel(); this.bt_close = new System.Windows.Forms.Button(); @@ -37,23 +37,15 @@ this.cb_create = new System.Windows.Forms.ComboBox(); this.bt_new = new System.Windows.Forms.Button(); this.bt_deleteItem = new System.Windows.Forms.Button(); + this.treeView1 = new System.Windows.Forms.TreeView(); + this.imageList1 = new System.Windows.Forms.ImageList(this.components); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // - // treeView1 - // - this.treeView1.AllowDrop = true; - this.treeView1.HideSelection = false; - this.treeView1.Location = new System.Drawing.Point(12, 41); - this.treeView1.Name = "treeView1"; - this.treeView1.Size = new System.Drawing.Size(207, 471); - this.treeView1.TabIndex = 2; - this.treeView1.BeforeSelect += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeView1_BeforeSelect); - this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); - // // groupBox1 // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox1.Controls.Add(this.panel1); this.groupBox1.Location = new System.Drawing.Point(225, 13); @@ -65,7 +57,9 @@ // // panel1 // - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.panel1.Location = new System.Drawing.Point(3, 19); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(262, 480); @@ -73,6 +67,7 @@ // // bt_close // + this.bt_close.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.bt_close.Location = new System.Drawing.Point(417, 521); this.bt_close.Name = "bt_close"; this.bt_close.Size = new System.Drawing.Size(75, 23); @@ -82,6 +77,7 @@ // // bt_saveClose // + this.bt_saveClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.bt_saveClose.Location = new System.Drawing.Point(280, 521); this.bt_saveClose.Name = "bt_saveClose"; this.bt_saveClose.Size = new System.Drawing.Size(131, 23); @@ -91,6 +87,7 @@ // // bt_save // + this.bt_save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.bt_save.Location = new System.Drawing.Point(199, 521); this.bt_save.Name = "bt_save"; this.bt_save.Size = new System.Drawing.Size(75, 23); @@ -119,6 +116,7 @@ // // bt_deleteItem // + this.bt_deleteItem.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.bt_deleteItem.Location = new System.Drawing.Point(12, 521); this.bt_deleteItem.Name = "bt_deleteItem"; this.bt_deleteItem.Size = new System.Drawing.Size(112, 23); @@ -127,11 +125,33 @@ this.bt_deleteItem.UseVisualStyleBackColor = true; this.bt_deleteItem.Click += new System.EventHandler(this.bt_deleteItem_Click); // + // treeView1 + // + this.treeView1.AllowDrop = true; + this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.treeView1.HideSelection = false; + this.treeView1.Location = new System.Drawing.Point(9, 41); + this.treeView1.Name = "treeView1"; + this.treeView1.ShowLines = false; + this.treeView1.Size = new System.Drawing.Size(207, 471); + this.treeView1.TabIndex = 4; + this.treeView1.BeforeSelect += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeView1_BeforeSelect); + this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + this.treeView1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView1_MouseClick); + // + // imageList1 + // + this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.imageList1.ImageSize = new System.Drawing.Size(16, 16); + this.imageList1.TransparentColor = System.Drawing.Color.Transparent; + // // BilderWords // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(504, 556); + this.Controls.Add(this.treeView1); this.Controls.Add(this.bt_deleteItem); this.Controls.Add(this.bt_new); this.Controls.Add(this.cb_create); @@ -139,7 +159,6 @@ this.Controls.Add(this.bt_saveClose); this.Controls.Add(this.bt_close); this.Controls.Add(this.groupBox1); - this.Controls.Add(this.treeView1); this.Name = "BilderWords"; this.Text = "Редактор справочника"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BilderWords_FormClosing); @@ -149,7 +168,6 @@ } #endregion - private System.Windows.Forms.TreeView treeView1; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Button bt_close; @@ -158,5 +176,7 @@ private System.Windows.Forms.ComboBox cb_create; private System.Windows.Forms.Button bt_new; private System.Windows.Forms.Button bt_deleteItem; + private System.Windows.Forms.TreeView treeView1; + private System.Windows.Forms.ImageList imageList1; } } \ No newline at end of file diff --git a/Reseter2/Words/BilderWords.cs b/Reseter2/Words/BilderWords.cs index 7c1344b..8fdf5e6 100644 --- a/Reseter2/Words/BilderWords.cs +++ b/Reseter2/Words/BilderWords.cs @@ -14,6 +14,7 @@ namespace Reseter2.Words internal partial class BilderWords : Form { private Control control; + private bool DragOn; public BilderWords() { InitializeComponent(); @@ -21,7 +22,18 @@ namespace Reseter2.Words WordsCategory WCvebinar = new WordsCategory("Вебинарные"); WordsList.AddItem(WCvebinar, WordsList.MainCategory); - WordsList.AddItem(new WordsComp(new CompId("8.8.8.8")), WCvebinar); + WordsList.AddItem(new WordsComp(new CompId("8.8..8")), WCvebinar); + WordsList.AddItem(new WordsComp(new CompId("8.8.3.8")), WCvebinar); + WordsList.AddItem(new WordsComp(new CompId("8.8.2.8")), WCvebinar); + WordsList.AddItem(new WordsComp(new CompId("8.8.1.8")), WCvebinar); + WordsList.AddItem(new WordsComp(new CompId("1ma00234")), WordsList.MainCategory); + WordsList.AddItem(new WordsComp(new CompId("1ma003333")), WordsList.MainCategory); + WordsCategory WCvebinar1 = new WordsCategory("Вебинарные"); + WordsList.AddItem(WCvebinar1, WordsList.MainCategory); + WordsList.AddItem(new WordsComp(new CompId("8.8.8.8")), WCvebinar1); + WordsList.AddItem(new WordsComp(new CompId("8.8.8.2")), WCvebinar1); + WordsList.AddItem(new WordsComp(new CompId("8.8.8.3")), WCvebinar1); + WordsList.AddItem(new WordsComp(new CompId("8.8.8.1")), WCvebinar1); WordsList.AddItem(new WordsComp(new CompId("1ma00234")), WordsList.MainCategory); WordsList.AddItem(new WordsComp(new CompId("1ma003333")), WordsList.MainCategory); //// TreeNode trno = new TreeNode("main"); @@ -51,6 +63,7 @@ namespace Reseter2.Words private void TreeView1_DragEnter(object sender, DragEventArgs e) { + DragOn = true; e.Effect = e.AllowedEffect; } private void TreeView1_DragOver(object sender, DragEventArgs e) @@ -60,17 +73,102 @@ namespace Reseter2.Words } private void TreeView1_DragDrop(object sender, DragEventArgs e) { + DragOn = false; + control.Visible = false; + control.Dispose(); + int indexMod = 0; + int index = 0; Point targetPoint = treeView1.PointToClient(new Point(e.X, e.Y)); - TreeNode node = treeView1.GetNodeAt(targetPoint); - int PointH = targetPoint.Y - node.Bounds.Y; - //treeView1.GetNodeAt(targetPoint).Bounds.Top.ToString() - //e.Y.ToString() - - //node.Bounds.Y + TreeNode selectNode = treeView1.GetNodeAt(targetPoint); + TreeNode moveNode = (TreeNode)e.Data.GetData(typeof(TreeNode)); + if(selectNode == null) + { + // indexMod = 1; + } + else + { + int PointH = targetPoint.Y - selectNode.Bounds.Y; + if (PointH > 6) indexMod = 1; + } + + //if (!((IWordsItem)moveNode.Tag).ChekMove((IWordsItem)selectNode.Tag)) return; + + WordsCategory DstCategory; + TreeNodeCollection DstNodes; - - MessageBox.Show(PointH.ToString()); - + if (selectNode == null) + { + DstCategory = WordsList.MainCategory; + DstNodes = treeView1.Nodes; + if(targetPoint.Y < 5) + { + index = 0; + } + else + { + index = treeView1.Nodes.Count; + } + + } + else if (selectNode.Tag is WordsCategory) + { + DstCategory = (WordsCategory)selectNode.Tag; + DstNodes = selectNode.Nodes; + selectNode.Expand(); + // index = 1; + } + else if (selectNode.Parent == null) + { + DstCategory = WordsList.MainCategory; + DstNodes = treeView1.Nodes; + index = selectNode.Index + indexMod; + } + else + { + DstCategory = (WordsCategory)selectNode.Parent.Tag; + DstNodes = selectNode.Parent.Nodes; + index = selectNode.Index + indexMod; + } + + WordsCategory SrcCategory; + TreeNodeCollection SrcNodes; + if (moveNode == null) + { + SrcCategory = WordsList.MainCategory; + SrcNodes = treeView1.Nodes; + } + else if (moveNode.Parent == null) + { + SrcCategory = WordsList.MainCategory; + SrcNodes = treeView1.Nodes; + + } + else + { + SrcCategory = (WordsCategory)moveNode.Parent.Tag; + SrcNodes = moveNode.Parent.Nodes; + + } + if(SrcCategory == DstCategory) + { + if(selectNode == null) + { + if (targetPoint.Y > 5) index--; + } + else if (moveNode.Index < selectNode.Index) index--; + } + + IWordsItem MoveItem = (IWordsItem)moveNode.Tag; + if (!MoveItem.ChekMove(DstCategory)) return; + WordsList.MoveItem(index, MoveItem, SrcCategory, DstCategory); + + // treeView1.Nodes.Clear(); + // treeView1.Nodes.AddRange(WordsList.ListNodes()); + + SrcNodes.Remove(moveNode); + DstNodes.Insert(index, moveNode); + + } @@ -87,7 +185,8 @@ namespace Reseter2.Words private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { - if (e.Node != null) + + if (e.Node != null && !DragOn) { if (e.Node.Tag is WordsComp) { @@ -108,7 +207,7 @@ namespace Reseter2.Words private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e) { - if(control != null) + if(control != null && !DragOn) { control.Visible = false; control.Dispose(); @@ -155,6 +254,7 @@ namespace Reseter2.Words { case 0: item = new WordsCategory("Новая категория"); + index = 0; WordsList.InsertItem(index, (WordsCategory)item, ParentCategory); treeNode.ImageIndex = 1; treeNode.Text = "Новая категория"; @@ -197,9 +297,6 @@ namespace Reseter2.Words { ParentCategory = (WordsCategory)selectNode.Parent.Tag; ParentNodes = selectNode.Parent.Nodes; - - - } @@ -210,5 +307,31 @@ namespace Reseter2.Words ParentNodes.Remove(selectNode); } + + + + private void treeView1_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + Point targetPoint = treeView1.PointToClient(new Point(e.X, e.Y)); + if (treeView1.GetNodeAt(targetPoint) == null) treeView1.SelectedNode = null; + } + else if (e.Button == MouseButtons.Right) + { + treeView1.SelectedNode = null; + } + + } + + private void treeView1_KeyDown(object sender, KeyEventArgs e) + { + + } + + private void panel2_MouseDown(object sender, MouseEventArgs e) + { + + } } } diff --git a/Reseter2/Words/BilderWords.resx b/Reseter2/Words/BilderWords.resx index 1af7de1..9266b25 100644 --- a/Reseter2/Words/BilderWords.resx +++ b/Reseter2/Words/BilderWords.resx @@ -117,4 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + \ No newline at end of file diff --git a/Reseter2/Words/IWordsItem.cs b/Reseter2/Words/IWordsItem.cs index 5fec8fe..63907e9 100644 --- a/Reseter2/Words/IWordsItem.cs +++ b/Reseter2/Words/IWordsItem.cs @@ -16,7 +16,7 @@ namespace Reseter2.Words public abstract void ChekChange(bool chek); public abstract void Delete(); public abstract TreeNode NodeList(); - + public abstract bool ChekMove(IWordsItem wordsItem); diff --git a/Reseter2/Words/WordsCategory.cs b/Reseter2/Words/WordsCategory.cs index 1ca297c..df115e4 100644 --- a/Reseter2/Words/WordsCategory.cs +++ b/Reseter2/Words/WordsCategory.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; @@ -26,9 +27,16 @@ namespace Reseter2.Words } public void Insert(int index, IWordsItem newitem) { + //if (index > items.Count) index = items.Count; items.Insert(index, newitem); } + public void Move(int index, IWordsItem item, WordsCategory wordsdst) + { + items.Remove(item); + wordsdst.Insert(index, item); + } + public string GetName() { return Name; @@ -54,6 +62,17 @@ namespace Reseter2.Words items.Remove(wordsItem); } + public override bool ChekMove(IWordsItem wordsItem) + { + if(this == wordsItem) return false; + foreach (var item in items) + { + if(!item.ChekMove(wordsItem)) return false; + + } + return true; + } + public override void Delete() { foreach(IWordsItem item in items) { diff --git a/Reseter2/Words/WordsComp.cs b/Reseter2/Words/WordsComp.cs index e211dcd..94285e7 100644 --- a/Reseter2/Words/WordsComp.cs +++ b/Reseter2/Words/WordsComp.cs @@ -53,7 +53,10 @@ namespace Reseter2.Words { return Comp.GetName(); } - + public override bool ChekMove(IWordsItem wordsItem) + { + return true ; + } public string GetDescription() { return Comp.GetDescription(); diff --git a/Reseter2/Words/WordsList.cs b/Reseter2/Words/WordsList.cs index a72d3a5..971930e 100644 --- a/Reseter2/Words/WordsList.cs +++ b/Reseter2/Words/WordsList.cs @@ -19,7 +19,12 @@ namespace Reseter2.Words { wordsCategory.Insert(index, item); } - + + public static void MoveItem(int index, IWordsItem item, WordsCategory SrcCategory, WordsCategory DstCategory) + { + SrcCategory.Move(index, item, DstCategory); + } + public static TreeNode[] ListNodes() { TreeNode[] treeNodes = new TreeNode[MainCategory.Count()];