private void 编辑节点ToolStripMenuItem_Click(object sender, EventArgs e) { if (_treeView.SelectedItems.Count > 0) { List <YmlItem> lists = YmlFormatUtil.FormatYmlToTree(resContent); TreeListViewItem item = _treeView.SelectedItems[0]; string parentId = null; if (null != item.Parent) { parentId = ((YmlItem)item.Parent.Tag).Uuid; } YmlNodeForm form = new YmlNodeForm(item, lists, (ymlItem) => { if (null != ymlItem) { string newParentId = ymlItem.Uuid; if (newParentId != parentId) { TreeListViewItem parentNode = getTreeNode(_treeView.Items, newParentId); if (null != parentNode) { if (null != item.Parent) { item.Parent.Items.Remove(item); } else { _treeView.Items.Remove(item); } parentNode.Items.Add(item); } } } }, 0); form.ShowDialog(this); btn_save.Enabled = true; } }
private void listView1_SelectedIndexChanged(object sender, EventArgs e) { if (listView1.SelectedItems.Count > 0) { ListViewItem item = listView1.SelectedItems[0]; foreach (ListViewItem item2 in listView1.Items) { item2.ForeColor = Color.Black; } item.ForeColor = Color.Red; YmlFile file = (YmlFile)item.Tag; string path = file.localPath + file.localName; string content = YSTools.YSFile.readFileToString(path); if ((file.remotePath + file.remoteName) == "") { file_label.Text = file.localPath + file.localName; } else { file_label.Text = file.remotePath + file.remoteName; } // 渲染 if (tabControl1.SelectedIndex == 0) { if (resContent != content || _treeView.Items.Count == 0) { resContent = content; btn_save.Enabled = false; btn_tree.Text = "展开全部节点"; // 树形 _treeView.Items.Clear(); List <YmlItem> lists = YmlFormatUtil.FormatYmlToTree(content); TreeListViewItem viewItem = null, parentItem = null; Dictionary <string, TreeListViewItem> _cache = new Dictionary <string, TreeListViewItem>(); foreach (YmlItem obj in lists) { viewItem = new TreeListViewItem(); viewItem.Tag = obj; viewItem.Text = obj.Key; viewItem.ImageIndex = obj.ImageIndex; viewItem.SubItems.Add(obj.Value); viewItem.SubItems.Add("" + obj.Level); viewItem.SubItems.Add(obj.Common); if (obj.Level == 0) { _treeView.Items.Add(viewItem); } else if (_cache.ContainsKey(obj.Parent.Uuid)) { parentItem = _cache[obj.Parent.Uuid]; if (null != parentItem) { parentItem.Items.Add(viewItem); } } else { _treeView.Items.Add(viewItem); } _cache.Add(obj.Uuid, viewItem); } Validate(item, content); } } else { if (resContent != content || ymlEditor.Text == "") { // YML编辑器 ymlEditor.Text = ""; List <YmlLine> list = YmlFormatUtil.FormatYml(content); foreach (YmlLine line in list) { ymlEditor.SelectionColor = line.Color; ymlEditor.SelectionFont = line.Font; ymlEditor.AppendText(line.Text); } ymlEditor.ClearUndo(); Validate(item, content); } } } }