using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using Zone;
using System.Runtime.InteropServices;
namespace 操作xml
{
public partial class Form1 : Form
{
private int ListItemIndex = -1;
[DllImport("user32")]
private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public Form1()
{
InitializeComponent();
this.listView1.GridLines = true; //显示表格线
this.listView1.View = View.Details;//显示表格细节
this.listView1.LabelEdit = true; //是否可编辑,ListView只可编辑第一列。
this.listView1.Scrollable = true;//有滚动条
this.listView1.HeaderStyle = ColumnHeaderStyle.Clickable;//对表头进行设置
this.listView1.FullRowSelect = true;//是否可以选择行
//this.listView1.HotTracking = true;// 当选择此属性时则HoverSelection自动为true和Activation属性为oneClick
//this.listView1.HoverSelection = true;
//this.listView1.Activation = ItemActivation.Standard; //
//添加表头
this.listView1.Columns.Add("别名",120);
this.listView1.Columns.Add("路径",450);
XmlFasta.CreateXml();
}
private void button1_Click(object sender, EventArgs e)
{
string s1 = textBox1.Text;
string s2 = textBox2.Text;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("data.xml");
XmlNode root = xmlDoc.SelectSingleNode("Element");
XmlElement xe1 = xmlDoc.CreateElement("alias");
xe1.SetAttribute("alias", s1);
xe1.SetAttribute("cmd", s2);
root.AppendChild(xe1);
xmlDoc.Save("data.xml");
}
private void Form1_Load(object sender, EventArgs e)
{
Loadxml();
//GetXml();
LoadListView();
}
//**************************修改*****************************
private void button2_Click(object sender, EventArgs e)
{
ListViewItem p = new ListViewItem();
p = listView1.Items[ListItemIndex];
string ss1 = p.SubItems[0].Text;
string ss2 = p.SubItems[1].Text;
string s1 = textBox1.Text.Trim();
string s2 = textBox2.Text.Trim();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("data.xml");
XmlNodeList nodeList = xmlDoc.SelectSingleNode("Element").ChildNodes;
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("alias") == ss1 && xe.GetAttribute("cmd") == ss2)
{
xe.SetAttribute("alias", s1);
xe.SetAttribute("cmd", s2);
break;
}
}
textBox1.Text = "";
textBox2.Text = "";
xmlDoc.Save("data.xml");
LoadListView(ListItemIndex);
//SendMessage(listView1.Handle, 500, 200, 200);
}
void Loadxml()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("data.xml");
XmlNode xn = xmlDoc.SelectSingleNode("Element");
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
//Console.WriteLine(xe.GetAttribute("alias"));//显示属性值
//Console.WriteLine(xe.GetAttribute("cmd"));
XmlNodeList xnf1 = xe.ChildNodes;
foreach (XmlNode xn2 in xnf1)
{
//Console.WriteLine(xn2.InnerText);//显示子节点点文本
}
}
}
void LoadListView()
{
LoadListView(0);
}
void LoadListView(int i)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("data.xml");
XmlNode xn = xmlDoc.SelectSingleNode("Element");
XmlNodeList xnl = xn.ChildNodes;
ListViewItem p = new ListViewItem();
listView1.Items.Clear();
foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
p = new ListViewItem(new string[] { xe.GetAttribute("alias"), xe.GetAttribute("cmd") });
this.listView1.Items.Add(p);
}
try
{
listView1.Items[i].Selected = true;
listView1.Items[i].EnsureVisible();
}
catch
{
i = i - 1;
listView1.Items[i].Selected = true;
listView1.Items[i].EnsureVisible();
}
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
ListViewItem p = new ListViewItem();
p = listView1.Items[ListItemIndex];
textBox1.Text = p.SubItems[0].Text;
textBox2.Text = p.SubItems[1].Text;
}
//***************删除********************************************
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
ListViewItem p = new ListViewItem();
p = listView1.Items[ListItemIndex];
string s1 = p.SubItems[0].Text;
string s2 = p.SubItems[1].Text;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("data.xml");
XmlNodeList xnl = xmlDoc.SelectSingleNode("Element").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("alias") == s1 && xe.GetAttribute("cmd") ==s2)
{
xe.ParentNode.RemoveChild(xe);
break;
}
}
xmlDoc.Save("data.xml");
LoadListView(ListItemIndex);
//SendMessage(listView1.Handle, 500, 200, 200);
}
private void listView1_Click(object sender, EventArgs e)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].Selected)
{
ListItemIndex = i;
}
}
}
}
}