C#WinForm实现代码: 1、主窗口中tableLayoutPanel控件生成了一个表格,点击保存按钮,将编辑过的表格数据储存,并在另一管理窗口的ListView控件中,通过时间戳生成唯一名; 2、管理窗口ListView控件中可通过双击唯一名打开并弹出新的表格窗口,将保存的表格的数据填充到表格窗口内; 3、管理窗口ListView控件中唯一名可删除,同时删除对应的保存的表格数据
时间: 2024-02-17 14:05:25 浏览: 126
好的,这是一个比较复杂的问题,需要分步骤来回答。首先,我们需要在主窗口中添加一个 tableLayoutPanel 控件,并在其中创建一个表格。接下来,我们需要添加一个保存按钮,并在点击按钮时将编辑过的表格数据储存起来。
```C#
// 保存按钮的事件处理程序
private void btnSave_Click(object sender, EventArgs e)
{
// 首先获取表格中的数据
int rowCount = tableLayoutPanel1.RowCount;
int columnCount = tableLayoutPanel1.ColumnCount;
string[,] data = new string[rowCount, columnCount];
for (int row = 0; row < rowCount; row++)
{
for (int col = 0; col < columnCount; col++)
{
Control cellControl = tableLayoutPanel1.GetControlFromPosition(col, row);
if (cellControl != null && cellControl is TextBox)
{
TextBox textBox = (TextBox)cellControl;
data[row, col] = textBox.Text;
}
else
{
data[row, col] = "";
}
}
}
// 然后生成唯一名
string uniqueName = DateTime.Now.ToString("yyyyMMddHHmmssfff");
// 将数据和唯一名保存起来
// 这里可以使用文件、数据库或者其他方式来保存数据
// 这里使用一个字典来存储数据,以唯一名作为 key
Dictionary<string, string[,]> dataDict = new Dictionary<string, string[,]>();
dataDict.Add(uniqueName, data);
// 在管理窗口的 ListView 控件中添加一项
ListViewItem item = new ListViewItem(uniqueName);
listView1.Items.Add(item);
}
```
接下来,我们需要在管理窗口中添加一个 ListView 控件,并在其中显示保存的唯一名。当用户双击唯一名时,我们需要打开一个新的表格窗口,并将保存的表格数据填充到窗口中。
```C#
// ListView 控件的双击事件处理程序
private void listView1_DoubleClick(object sender, EventArgs e)
{
// 获取选中的项
if (listView1.SelectedItems.Count > 0)
{
ListViewItem selectedItem = listView1.SelectedItems[0];
string uniqueName = selectedItem.Text;
// 获取对应的数据
string[,] data = null;
// 这里从字典中获取数据,如果使用其他方式保存数据,需要相应地修改代码
if (dataDict.ContainsKey(uniqueName))
{
data = dataDict[uniqueName];
}
// 打开新的表格窗口
if (data != null)
{
TableForm tableForm = new TableForm(data);
tableForm.ShowDialog();
}
}
}
```
最后,我们需要在管理窗口中实现删除唯一名的功能,并同时删除对应的保存的表格数据。
```C#
// 删除按钮的事件处理程序
private void btnDelete_Click(object sender, EventArgs e)
{
// 获取选中的项
if (listView1.SelectedItems.Count > 0)
{
ListViewItem selectedItem = listView1.SelectedItems[0];
string uniqueName = selectedItem.Text;
// 删除对应的数据
dataDict.Remove(uniqueName);
// 从 ListView 控件中删除对应的项
listView1.Items.Remove(selectedItem);
}
}
```
以上就是实现这个功能的大致代码,需要注意的是,这里只是提供一个思路,具体实现可能还需要根据自己的实际情况进行调整。
阅读全文