来自textbox1的用户输入>存储在列表中> textbox2中的输出

时间:2013-02-27 22:42:24

标签: c#

我刚才有一个关于C#列表的问题。在编程方面,我是一个非常棒的人,我真的很抱歉做一个小鸟。我正在做一些练习编码,我正在创建一个简单的程序,允许用户通过textbox1输入名称,然后一旦按下button1,名称将存储在List中,并将在textbox2上输出。

我很难从textbox1存储数据。在网上查了一下,但是我找不到合适的文章,所以我在这里试试运气。

对不起,伙计们,我忘了提到我正在使用Winforms。

非常感谢您的快速回复。

7 个答案:

答案 0 :(得分:2)

假设winforms ......

  • 将2个列表和一个按钮拖放到设计器上。
  • 将按钮拖到设计师上
  • 双击按钮以自动创建活动
  • 在表单内的某处创建一个列表结构来存储列表
  • 在表单构造函数
  • 中实例化您的列表 在button1_Click事件中
  • textbox1的文字添加到列表
  • 生成1textbox2`
  • 的文本

这是一个例子

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            list = new List<string>();
        }

        List<string> list;

        private void button1_Click(object sender, EventArgs e)
        {
            list.Add(textBox1.Text);


            string txt = "";
            foreach(string s in list)
            {
                txt += s + " ";
            }
            textBox2.Text = txt;
        }
    }
}

答案 1 :(得分:1)

那样的东西?

string name = Textbox1.Text;
ListBox1.Add(name);

答案 2 :(得分:1)

如果您使用传统的Windows表单应用程序;我不确定您是否打算将数据存储在另一个文本框中。但是列表框可能更符合您的目标。

  1. 将以下内容:文本框,第二个文本框,列表框和按钮从工具箱拖到表单中。
  2. 根据需要调整它们,将它们视为画布的画布。
  3. 一旦看起来配置了您想要双击按钮的方式。
  4. 此时,Visual Studio将离开Designer View并进入代码视图。所以你将能够看到代码。它会自动将您置于Button代码块中。

    这些块非常重要,随着您的进步,您会注意到C#的结构。

    private void button1_click(object sender, EventArgs e)
    {
         // Logic to add will go in here.
    }
    

    这是什么意思?

    • 私有:是修饰符,它意味着它仅限于此类。
    • Void:表示不要求返回类型。
    • button1_click:这是按钮的名称,您可以在其属性中更改它。最好将组件命名为infront,以便了解您的工作内容。

    整个区块是一个事件。因此,当它被点击时,它将执行一个动作。这就是它的意思;所以这就是你实现目标的地方:

    private void btnAddToList_Click(object sender, EventArgs e)
    {
           // Test to ensure it isn't null.
           if(txtAddText.Text != String.EmptyOrNull)
           {
                // Declare a variable with the initial textbox value.
                string txtVar = txtAddText.Text;
    
                // Has the second textbox inherit value from other Textbox.
                txtNewText = txtVar
    
               // Now Add it to a Listbox.
               lstContainer.Items.Add(txtAddText.Text + DateTime.Now());
           }
    
           else 
           {
                // Null or Empty Character, Error Message.
                MessageBox.Show("Invalid Entry, please enter a valid entry");
           }
    }
    

    这将提供基础知识,但正如您从其他示例中可以看到的那样,他们以不同的方式做到了。您会注意到,如果您不小心,错误可能存在于此类逻辑中。您将学习根据您配置的结构进行识别。

    希望这很有帮助,看起来很多人也为你做了一些了不起的帖子。

    快乐的编码。

答案 3 :(得分:0)

在button1中单击侦听器(如果没有此钩子进入GUI构建器视图并双击该按钮,它将自动为您创建并注册侦听器),添加以下代码;

  textbox2.Text = textbox1.Text; // set tb2 = tb1
  textbox1.Text = System.String.Empty; // clear tb1

现在,在您的帖子中,您说要将数据存储在列表中,但是您没有指定用户输入该数据的方式,因此很难给出具体的答案。如果名称用逗号分隔,以获得一个包含所有名称的数组,您可以这样做;

  string[] names = textbox1.Text.Split(',');

但是,从您的帖子来看,您似乎根本不想将数据存储在列表中。如果您只是希望textbox1中的输入在单击输入按钮时显示在textbox2中,请使用第一个代码段。如果你走第二条路线,你必须将数组转换回一个字符串。这可以通过for循环轻松完成。

 string result = System.String.Empty;
 for (int i = 0; i < names.Length; i++)
      result = result + names[i] + " ";

textbox2显示textbox1中的内容并显示名称数量;

  textbox2.Text = textbox1.Text; // set tb2 = tb1
  string[] names = textbox1.Text.Split(','); // i use a comma but use whatever
  // separates the names might just want ' ' for whitespace
  textbox1.Text = System.String.Empty; // clear tb1
  MessageBox.Show("You entered " + names.Count.ToString() + " names."); // show the names count

答案 4 :(得分:0)

这很简单。

    List<string> mylist=new List<string>();
    mylist.Add(textbox1.Text);
    textbox2.Text=mylist[mylist.Count - 1]

首先创建一个字符串对象列表。 然后将文本从textbox1添加到列表的末尾。 然后通过获取列表的长度并减去1来获取从列表中添加的最后一个元素,因为在C#集合中基于0并且第一个元素是[0]而不是[1]。

答案 5 :(得分:0)

你可以使用简单的东西:

private void button1_Click_1(object sender, EventArgs e)
{
     string[] names = textBox1.Text.Split(new string[] { " ", Environment.NewLine, "," }, StringSplitOptions.RemoveEmptyEntries);
     //you can add more parameters for splitting the string
     textBox2.Text = string.Join(",", names);
     //you can replace the comma with something more suitable for you
}

第一行将您在textBox1中输入的字符串(因此由换行符,空白字符或逗号分隔的名称)拆分为字符串数组(而不是您请求的列表),第二行将字符串连接成一个大字符串用逗号分隔的名称并将其放入textBox2

答案 6 :(得分:0)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ShowAllSaveNameAndCountApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        List<string> ourList=new List<string>();


        string txt =" ";
        private void buttonSave_Click(object sender, EventArgs e)
        {
            ourList.Add(textBoxEntryName.Text);



            foreach (string s in ourList)
            {
                txt+= s+ "\n ";


            }
            textBoxEntryName.Clear();

           ourList.Clear();


        }



        private void buttonShowAllName_Click(object sender, EventArgs e)
        {
            textBoxShowName.Text = txt;
        }
    }
}