C#WinForm代码实现:1、tableLayoutPanel控件表格的保存,将数据保存为按时间命名的XML文件; 2、在另一窗口中显示XML文件名,可双击打开查看; 3、在另一窗口中显示XML文件名可删除,同时删除数据
时间: 2024-02-18 07:00:01 浏览: 27
好的,我来为您解答。
首先,实现保存数据为XML文件,您可以在保存按钮的Click事件中编写以下代码:
```csharp
private void btnSave_Click(object sender, EventArgs e)
{
// 创建XML文档对象
XmlDocument doc = new XmlDocument();
// 创建根节点
XmlElement root = doc.CreateElement("Data");
// 遍历tableLayoutPanel中的所有控件
foreach (Control c in tableLayoutPanel1.Controls)
{
// 判断控件是否为TextBox
if (c is TextBox)
{
// 创建子节点
XmlElement node = doc.CreateElement("Item");
// 设置子节点属性
node.SetAttribute("Row", tableLayoutPanel1.GetRow(c).ToString());
node.SetAttribute("Column", tableLayoutPanel1.GetColumn(c).ToString());
node.SetAttribute("Text", c.Text);
// 将子节点添加到根节点
root.AppendChild(node);
}
}
// 将根节点添加到XML文档中
doc.AppendChild(root);
// 保存XML文件
string filename = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xml";
doc.Save(filename);
}
```
上述代码中,我们使用XmlDocument类来创建XML文档对象,并创建根节点。然后遍历tableLayoutPanel中的所有控件,如果控件是TextBox,则创建一个名为"Item"的子节点,并设置子节点的属性,最后将子节点添加到根节点中。最后将根节点添加到XML文档中,并使用DateTime.Now.ToString("yyyyMMddHHmmss")来生成文件名,然后调用Save方法保存XML文件。
接下来,实现在另一窗口中显示XML文件名,并可双击打开查看。在另一个窗口的Load事件中编写以下代码:
```csharp
private void Form2_Load(object sender, EventArgs e)
{
// 获取当前目录下的所有XML文件
string[] files = Directory.GetFiles(".", "*.xml");
// 遍历文件数组,将文件名添加到ListBox中
foreach (string file in files)
{
listBox1.Items.Add(file);
}
}
```
上述代码中,我们使用Directory类的GetFiles方法获取当前目录下的所有XML文件,并将文件名添加到ListBox中。
接着,实现双击打开查看XML文件。在listBox1的DoubleClick事件中编写以下代码:
```csharp
private void listBox1_DoubleClick(object sender, EventArgs e)
{
// 获取选中的文件名
string filename = listBox1.SelectedItem.ToString();
// 创建XML文档对象
XmlDocument doc = new XmlDocument();
// 加载XML文件
doc.Load(filename);
// 创建一个新的窗口来显示XML文件内容
Form3 form3 = new Form3();
form3.XmlDoc = doc;
form3.Show();
}
```
上述代码中,我们首先获取选中的文件名,然后使用XmlDocument类的Load方法加载XML文件。接着创建一个新的窗口Form3,将加载的XML文档对象赋值给Form3的XmlDoc属性,并显示窗口。
最后,实现在另一窗口中显示XML文件名可删除,同时删除数据。在listBox1的SelectedIndexChanged事件中编写以下代码:
```csharp
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
// 判断是否有选中的文件
if (listBox1.SelectedIndex != -1)
{
// 启用删除按钮
btnDelete.Enabled = true;
}
else
{
// 禁用删除按钮
btnDelete.Enabled = false;
}
}
```
上述代码中,我们判断是否有选中的文件,如果有则启用删除按钮,否则禁用删除按钮。在btnDelete的Click事件中编写以下代码:
```csharp
private void btnDelete_Click(object sender, EventArgs e)
{
// 获取选中的文件名
string filename = listBox1.SelectedItem.ToString();
// 删除XML文件
File.Delete(filename);
// 从ListBox中移除选中的文件名
listBox1.Items.Remove(listBox1.SelectedItem);
// 禁用删除按钮
btnDelete.Enabled = false;
}
```
上述代码中,我们首先获取选中的文件名,然后使用File类的Delete方法删除XML文件。接着从ListBox中移除选中的文件名,并禁用删除按钮。
这样,我们就完成了表格保存为XML文件、查看XML文件、删除XML文件的功能。希望对您有所帮助。