繁体   English   中英

将字符串值添加到数组

[英]Adding String Values to an Array

我有这段代码,这似乎是一个非常愚蠢的问题,但这是他们被教给我的方式,而且对我而言它无法正常工作。

我希望当我在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();
            }

每次输入btnEnter_Click方法时都要清除数组,应将int声明为页面的变量,例如“全局”变量,并且在btnEnter_Click方法中应仅添加新值。 对不起,英语不好。

它应该只是下面的代码。 不需要for循环,并且您不应该清除lstWords.Items,因为这就是您的数据消失的原因。 只需将文本框“文本”添加到列表中,然后清除文本框即可。 您也不需要string []单词,因为它作为局部变量没有任何作用。 如果您真的想将其添加到string []中,那么它将需要是该方法所在的类的成员。我认为仅做lstWords.Items.Add应该会很好,但是如果那是您需要在其中添加文本的地方已保存。

private void btnEnter_Click(object sender, EventArgs e)
{
    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();
}

如果试图将新项目连续添加到列表中,则如果要保持视觉效果,则不应清除lstWords.Items 我建议您创建一个List<string> myWordsToDisplay = new List<string>()全局,并在单击添加按钮时将一个项目添加到列表中。

您应该具有清除应用程序事件“ 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);

如果要将值也存储在其他位置,则应在按钮单击功能之外设置此变量。 如果您希望能够轻松地将项目添加到数组,请考虑使用列表。 可以在这里找到更多信息: https : //msdn.microsoft.com/zh-cn/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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM