c# - 在动态创建的文本框中计算
问题描述
如何在另一个文本框中动态创建的 texbox 中添加值?例如,我有 6 个从 TextBox0 到 TextBox6 命名的文本框,我想将 TextBox0 中的值添加到 TextBox5,然后在 TextBox6 中设置该值。我怎样才能做到这一点?
这是我创建动态文本框的代码:
static int column = 0;
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
if (column > 0)
{
do
{
TextBox tb = new TextBox();
tb.Text = "";
tb.Name = "TextBox" + (i + column * 6);
TextBox t = (TextBox)Controls["TextBox" + i.ToString()];
Point p = new Point(15 + (column * 125), 5 + (i * 25));
tb.Location = p;
this.Controls.Add(tb);
i++;
} while (i <= 5);
}
else
{
do
{
TextBox tb = new TextBox();
tb.Text = "";
tb.Name = "TextBox" + i;
TextBox t = (TextBox)Controls["TextBox" + i.ToString()];
Point p = new Point(15, 5 + (i * 25));
tb.Location = p;
this.Controls.Add(tb);
i++;
} while (i <= 5);
}
column++;
}
解决方案
private const string _textBoxName = "TextBox";
方法 count textboxes 按给定的文本框 ID 范围求和。请注意,如果文本框文本/名称 ID 不是整数或
private int Count(int from, int to)
{
int GetIdFromTextBox(TextBox textBox) => int.Parse(new string(textBox.Name.Skip(_textBoxName.Length).ToArray()));
var textBoxes = Controls.OfType<TextBox>().ToList();
var textBoxesWithIds = textBoxes.Select(textBox => (textBox: textBox, id: GetIdFromTextBox(textBox))).ToList();
var sum = textBoxesWithIds.Where(x => x.id >= from && x.id <= to).Sum(x => int.Parse(x.textBox.Text));
return sum;
}
推荐阅读
- python - 如何将图像引用放在 Django db 的字符字段中?
- python - 如何自定义嵌套序列化程序中的字段?
- java - 将 Spring Security 与 Keycloak 集成时遇到 NullPointerException
- luxon - 如何在 luxonjs 中获得实际的经络?
- outlook - 使用自己的提供商从 Outlook 进行电子邮件签名
- javascript - “连接”类型上不存在属性“exportJson”...使用 JS Store 时
- android - 使用 Deferred 的单元测试 Retrofit 调用
- r - 如何获得“|”的不同值 分隔列?
- angular - Angular 11最大调用堆栈大小超出错误
- node.js - Node Js发送到客户端后无法设置标头