gpt4 book ai didi

c# - 如何处理数组中的一组文本框/标签

转载 作者:行者123 更新时间:2023-11-30 17:02:54 24 4
gpt4 key购买 nike

我有一系列文本框和标签形成文本框 1-9 和标签 1 到 9。单击任何标签我清除相应的文本框。

我创建了一个方法,但与我在 TP 或 VB 中的程序相比,它就像一个婴儿玩具。必须有一个最短的结构良好的方式。任何想法都会非常感激?

我做了什么:)))

    private void label1_Click(object sender, EventArgs e)
{
textBox1.Text = "" ;
}
private void label2_Click(object sender, EventArgs e)
{
textBox2.Text = "" ;
}
private void label3_Click(object sender, EventArgs e)
{
textBox3.Text = "" ;
}
private void label4_Click(object sender, EventArgs e)
{
textBox4.Text = "" ;
}
private void label5_Click(object sender, EventArgs e)
{
textBox5.Text = "" ;
}
private void label6_Click(object sender, EventArgs e)
{
textBox6.Text = "" ;
}
private void label7_Click(object sender, EventArgs e)
{
textBox7.Text = "" ;
}
private void label8_Click(object sender, EventArgs e)
{
textBox8.Text = "" ;
}
private void label9_Click(object sender, EventArgs e)
{
textBox9.Text = "" ;
}

最佳答案

您可以利用Tag 属性来标记 控件。然后您可以遍历它们(最好从大多数父控件开始 - 形成并使用递归!或者,如果您确定,从包含控件组的容器开始)。

// assign tag "1" to "9" to labels and texboxes
// subscribe all labels to same event label_Click
private void label_Click(object sender, EventArgs e)
{
string id = (sender as Control).Tag.ToString();
// iterate or recurse
FindTextboxWithId(id).Clear();
}
// it shouldn't be hard to write FindTextboxWithId

另一种可能性是在表单构造函数中创建私有(private)控件数组,只是为了方便引用它们。

public TextBox[] _textBox;

public Form1()
{
InitializeComponent();
_textBox = new TextBox[] {textBox1, texBox2, ..., textBox9};
}

// assign tag "0" to "8" to labels and texboxes
// subscribe all labels to same event label_Click
private void label_Click(object sender, EventArgs e)
{
int index = int.Parse((sender as Label).Tag);
_textBox[index].Clear();
}

第三种可能性是利用容器,例如 TableLayoutPanel。您可以创建 2 列容器,其中第一列是 Label,第二列是 TextBox。然后只需填充 9 行并在 OnClick 中享受 乐趣(找到 sender 位置,找到 texbox 位置,找到文本框并最终清除它).

关于c# - 如何处理数组中的一组文本框/标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19219523/

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