C# 动态表单编辑
本文关键字:编辑 表单 动态 | 更新日期: 2023-09-27 18:27:24
这是我的第一篇文章。我正在创建一个包含 89 个文本框的 C# 应用程序。文本框名为"Box#"如何更改循环中文本框的值?像这样沉吟:
for (int y = 0; y < 89; y++)
{
"Box"+y.Text = "somthing";
}
您可以检查表单上控件的Type
,如果Type
是TextBox
,则只需调整测试(通过循环(。
代码片段;
public Form1()
{
InitializeComponent();
ChangeTextBoxes();
}
public void ChangeTextBoxes()
{
foreach (var c in this.Controls.OfType<TextBox>())
{
c.Text = @"New Value";
}
}
希望这有帮助。
使用 "Box"
时,您正在创建一个新的 String
对象。我建议将所有TextBox
对象放入列表中。
List<TextBox> boxes = new List<TextBox>();
// Add all of your text boxes.
foreach (TextBox box in boxes) {
box.Text = "This will change the text";
}
如果要在视图(使用 Javascript 的客户端(中进行此更改,请使用"eval(("函数。
类似于这样的东西:
eval('Box' + count + '.Text = "'+newText+'";');
如果以编程方式创建文本框,则可以将它们的Text
属性绑定到DataTable
,这将为您提供一些不错的可维护性功能:
DataTable _tbValues;
private void Form1_Load(object sender, EventArgs e)
{
_tbValues = new DataTable();
string[] cells = new string[89];
for (int i = 0; i < 89; i++)
{
_tbValues.Columns.Add(String.Format("Box{0}", i));
var tb = new TextBox();
tb.Name = String.Format("Box{0}", i);
tb.DataBindings.Add("Text", _tbValues, String.Format("{0}", tb.Name));
tb.Top = i * 20;
this.Controls.Add(tb);
}
_tbValues.Rows.Add(cells);
}
private void button1_Click(object sender, EventArgs e)
{
_tbValues.Rows[0].ItemArray = Enumerable
.Repeat(DateTime.Now as object, _tbValues.Columns.Count)
.ToArray();
_tbValues.AcceptChanges();
}