向数组中添加字符串值

本文关键字:字符串 添加 数组 | 更新日期: 2023-09-27 18:15:19

我有这段代码,这可能看起来像一个非常愚蠢的问题,但这是他们教我这样做的方式,它不适合我。

我希望它是,当我在txtEnterWord文本框中输入文本时,它将被添加到数组words中,并显示在列表框lstWords中。

但是每次我去添加第二个单词时,它都会清除前一个单词并用新单词替换它。有人知道怎么解决这个问题吗?:)

 private void btnEnter_Click(object sender, EventArgs e)
        {
            //string[] words = new string[6];
            //words[6] = txtEnterWord.Text;
            //for (int i = 0; i < words.Length; i++)
            //{
            //    lstWords.Items.Add(words[i]);
            //}
            lstWords.Items.Clear();
            string[] words = new string[6];
            //words[0] = txtEnterWord.Text;
            //words[1] = txtEnterWord.Text;
            //words[2] = txtEnterWord.Text;
            //words[3] = txtEnterWord.Text;
            //words[4] = txtEnterWord.Text;
            //words[5] = txtEnterWord.Text;
            for (int i = 0; i < words.Length;i++)
            {
                //words[i] = txtEnterWord.Text;
                lstWords.Items.Add(txtEnterWord.Text);
                txtEnterWord.Clear();
                //lstWords.ToString() = lstWords.ToString() + words[i].ToString();
            }

向数组中添加字符串值

应该是下面的代码。不需要for循环,也不应该清除lstWords。项,因为这就是您的数据消失的原因。只需将文本框添加到列表中,然后清除文本框。您也不需要字符串[]单词,因为它作为局部变量不做任何事情。如果您真的想将它添加到字符串[]中,那么它需要是此方法所在类的成员。我认为只要做lstWords.Items.Add应该是好的,如果这是你需要保存文本的地方。

private void btnEnter_Click(object sender, EventArgs e)
{
    lstWords.Items.Add(txtEnterWord.Text);
    txtEnterWord.Clear();
}

每次输入btnEnter_Click方法时都会清除数组,您应该将int声明为页面的变量,就像"全局"变量一样,并且在btnEnter_Click方法中您应该只添加新值。对不起,我的英语不好。

如果您试图不断地向列表中添加一个新项目,如果您想保持它们的视觉效果,则不应该清除lstWords.Items。我建议您创建一个List<string> myWordsToDisplay = new List<string>()全局,并在单击add按钮时向列表添加一个项目。

你应该有你的逻辑清除列表框上的事件"OnPaint"或"OnLoad"的应用程序,这取决于你有哪种类型的项目,像这样的

OnPaint(EventArgs e)
{
    lstWords.Items.Clear();
    lstWords.Items.AddRange(myWordsToDisplay); //if the AddRange method is not present is the same thing as this myWordsToDisplay.ForEach(x => lstWords.Items.Add(x)
}

明白了吗?

如果你想把每个项目都添加到列表框中,你不应该调用下面的方法。此函数将清除当前列表中的所有项,从而使列表显示为空。

lstWords.Items.Clear();

你应该直接从文本框(txtEnterWord)中添加文本到列表框项。

 lstWords.Items.Add(txtEnterWord.Text);

如果您希望该值也存储在其他地方,则应该将该变量置于button click函数之外。如果您希望能够轻松地向数组中添加项,请考虑使用列表。更多信息可以在这里找到:https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx

完整的代码应该是这样的:

private List<string> words = new List<string>();
private void btnEnter_Click(object sender, EventArgs e)
{
     words.Add(txtEnterWord.Text);
     lstWords.Items.Add(txtEnterWord.Text);
     txtEnterWord.Clear();
}
private void button1_Click(object sender, EventArgs e)
{
    string words;
    words = textBox1.Text;
    listBox1.Items.Add(words);
    textBox1.Clear();
}