gpt4 book ai didi

c# - 在运行时添加文本框并保存更改

转载 作者:行者123 更新时间:2023-11-30 20:51:17 25 4
gpt4 key购买 nike

我正在开发一个 Windows 窗体项目,要求用户通过单击按钮添加新字段(文本框和标签),我想要实现的是。用户添加新字段后,会自动创建一个文本框并将其保存到我的表单设置中。这样当我再次运行我的项目时。新添加的文本框(来自运行时)可用。有什么办法可以做到吗?我是 c# 的新手 提前致谢!

最佳答案

你试试这个

DataTable 在 System.Data 里面

using System.Data;

保存到 xml

private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable("Settings"); //we use DataTable class

dt.Columns.Add("ID");
dt.Columns.Add("Control");
dt.Columns.Add("ControlName");
dt.Columns.Add("Top");
dt.Columns.Add("Left");
dt.Columns.Add("Width");
dt.Columns.Add("Height");
/*
* You add more settings here
*/


int id = 0;

foreach (Control ctrl in this.Controls) //this.Controls is the parent control where the textbox is located
{
string c = ctrl.GetType().Name;
switch (c)
{
case "TextBox":
DataRow dr = dt.NewRow();
dr["ID"] = id++;
dr["Control"] = c;
dr["ControlName"] = ctrl.Name;
dr["Top"] = ctrl.Top;
dr["Left"] = ctrl.Left;
dr["Width"] = ctrl.Width;
dr["Height"] = ctrl.Height;
/*
* You add more settings here
*/
dt.Rows.Add(dr);
break;
}
}

dt.WriteXml(@"c:\TestFile.xml", XmlWriteMode.WriteSchema); //You can use save dialog to browse the location
}

检索

private void button2_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable("Settings");

dt.ReadXml(@"c:\TestFile.xml");

foreach (DataRow dr in dt.Rows)
{
switch (dr["Control"].ToString())
{
case "TextBox":
var t = new TextBox();
t.Name = dr["ControlName"].ToString();
t.Top = Convert.ToInt32(dr["Top"]);
t.Left = Convert.ToInt32(dr["Left"]);
t.Width = Convert.ToInt32(dr["Width"]);
t.Height = Convert.ToInt32(dr["Height"]);

this.Controls.Add(t);
break;
}
}

}

关于c# - 在运行时添加文本框并保存更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21849912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com