C# 如何在运行时将文本框存储到数组中

C# 如何在运行时将文本框存储到数组中,c#,.net,windows-8,C#,.net,Windows 8,情况是这样的: 我有多个文本框。在发生textChanged事件时,textbox应该存储在数组中,以便我可以在进一步的函数中使用它 private void txt_TextChanged(object sender, TextChangedEventArgs e) { TextBox t; t = (TextBox)sender; } 现在我有了负责这件事的文本框。现在,我必须将这些和更多内容存储在一个数组中,以便可以在其他函数中访问这些内容

情况是这样的: 我有多个文本框。在发生textChanged事件时,textbox应该存储在数组中,以便我可以在进一步的函数中使用它

private void txt_TextChanged(object sender, TextChangedEventArgs e)
    {
        TextBox t;
        t = (TextBox)sender;
    }

现在我有了负责这件事的文本框。现在,我必须将这些和更多内容存储在一个数组中,以便可以在其他函数中访问这些内容。

如果您愿意,可以将其放入列表中。不知道你为什么真的想这么做

List<TextBox> txtbxList = new List<TextBox>();

private void txt_TextChanged(object sender, TextChangedEventArgs e)
    {
        TextBox t;
        t = (TextBox)sender;
        txtbxList.Add(t);
    }
List txtbxList=new List();
私有void txt_TextChanged(对象发送方,textchangedventargs e)
{
文本框t;
t=(文本框)发送方;
txtbxList.Add(t);
}

如果您愿意,您可以将其放入列表中。不知道你为什么真的想这么做

List<TextBox> txtbxList = new List<TextBox>();

private void txt_TextChanged(object sender, TextChangedEventArgs e)
    {
        TextBox t;
        t = (TextBox)sender;
        txtbxList.Add(t);
    }
List txtbxList=new List();
私有void txt_TextChanged(对象发送方,textchangedventargs e)
{
文本框t;
t=(文本框)发送方;
txtbxList.Add(t);
}
说明 我不知道为什么需要将文本框存储在列表或数组中,但可以使用通用列表

表示可由索引访问的对象的强类型列表。提供搜索、排序和操作列表的方法

样品
List mytextboxs=new List();
//添加一个文本框
添加(myTextBox);
//按名称获取文本框
TextBox t=mytextboxs.Where(x=>x.Name==“TextBoxName”).FirstOrDefault();
更多信息
说明 我不知道为什么需要将文本框存储在列表或数组中,但可以使用通用列表

表示可由索引访问的对象的强类型列表。提供搜索、排序和操作列表的方法

样品
List mytextboxs=new List();
//添加一个文本框
添加(myTextBox);
//按名称获取文本框
TextBox t=mytextboxs.Where(x=>x.Name==“TextBoxName”).FirstOrDefault();
更多信息

假设您想存储文本框中的文本,您可以使用如下字典:

private Dictionary<string, string> dictionary = new Dictionary<string, string>();

private void txt_TextChanged(object sender, TextChangedEventArgs e)
{
    TextBox textBox = (TextBox)sender;
    string key = textBox.Name;
    string value = textBox.Text;
    if (!dictionary.ContainsKey(key))
    {
        dictionary.Add(key, value);
    }
    else
    {
        dictionary[key] = value;
    }
}
private Dictionary=new Dictionary();
私有void txt_TextChanged(对象发送方,textchangedventargs e)
{
TextBox TextBox=(TextBox)发送方;
字符串键=textBox.Name;
字符串值=textBox.Text;
如果(!dictionary.ContainsKey(键))
{
添加(键、值);
}
其他的
{
字典[键]=值;
}
}

假设您想存储文本框中的文本,您可以使用如下字典:

private Dictionary<string, string> dictionary = new Dictionary<string, string>();

private void txt_TextChanged(object sender, TextChangedEventArgs e)
{
    TextBox textBox = (TextBox)sender;
    string key = textBox.Name;
    string value = textBox.Text;
    if (!dictionary.ContainsKey(key))
    {
        dictionary.Add(key, value);
    }
    else
    {
        dictionary[key] = value;
    }
}
private Dictionary=new Dictionary();
私有void txt_TextChanged(对象发送方,textchangedventargs e)
{
TextBox TextBox=(TextBox)发送方;
字符串键=textBox.Name;
字符串值=textBox.Text;
如果(!dictionary.ContainsKey(键))
{
添加(键、值);
}
其他的
{
字典[键]=值;
}
}

为什么需要文本框本身,而不仅仅是值?还有,什么不起作用?您可能已经有了可以用来访问控件的私有字段(假设Windows窗体,它们的声明应该驻留在Form.Designer.cs文件中)。如果您稍后明确了要使用这些UI控件做什么,这也会有所帮助。我想您最好使用
列表
,而不是
文本框[]
数组。但正如Msonic所暗示的,如果不知道您想要解决的根本问题,就很难提出解决方案。为什么您需要文本框本身,而不仅仅是值?还有,什么不起作用?您可能已经有了可以用来访问控件的私有字段(假设Windows窗体,它们的声明应该驻留在Form.Designer.cs文件中)。如果您稍后明确了要使用这些UI控件做什么,这也会有所帮助。我想您最好使用
列表
,而不是
文本框[]
数组。但正如Msonic所暗示的,在不知道您要解决的基本问题的情况下,很难提出解决方案。我想在循环中访问文本框,并根据索引将文本框的文本与一系列值进行比较。@Slump:此代码每次文本更改时都会将同一文本框反复添加到列表中。@AnkitYadav:使用哈希集进行添加将文本框添加到,然后您可以稍后枚举集合并检索文本框以进行比较。然而,几乎总是有更好的方法来做你想做的事;想增加一个更大的背景吗(你真正想达到的目标)?@艾伦:谢谢你告诉我。但是我可以处理这个问题,因为一旦读取了值,文本框就被禁用了,所以不会有重复value@AnkitYadav:好的。这不是害羞的意思,但这是一个关键的信息,你没有包括在问题中。在正常情况下(例如,文本框在阅读内容时不会立即禁用),接受的解决方案显然会使您走上错误的道路。我希望以循环方式访问文本框,并根据索引将文本框的文本与一系列值进行比较。@坍落:此代码每次文本更改时都会将同一文本框一次又一次地添加到列表中。@AnkitYadav:使用哈希集将文本框添加到,然后,您可以稍后枚举集合并检索文本框以进行比较。然而,几乎总是有更好的方法来做你想做的事;想增加一个更大的背景吗(你真正想达到的目标)?@艾伦:谢谢你告诉我。但是我可以处理这个问题,因为一旦读取了值,文本框就被禁用了,所以不会有重复value@AnkitYadav:好的。这不是害羞的意思,但这是一个关键的信息,你没有包括在问题中。在正常情况下(例如,文本框在阅读内容时不会立即禁用),接受的解决方案显然会让您走上错误的道路。