2017-09-25 15 views
0

テキストボックスから文字列値を取り出して配列文字列に格納する方法は?要約ボタンをクリックすると、配列がリストボックスのリストとして表示されます。テキストボックスの値を文字列配列に格納し、配列をリストボックスに表示

たとえば、ユーザーはテキストボックスに "Tom"と入力します。ヒットを入力!トムは配列に格納されています ユーザーはテキストボックスに「Nick」と入力してEnterキーを押します! Nickは配列などに格納されます。

ユーザーが集計ボタンに当たったとき最後に、リストボックスは何かのように表示されます

トム

ニック

誰かがこれで私を助けることができますか?ご理解いただきありがとうございます!

これは私のコード今のところ

//Button helps to display the total number of customers 
     private void viewCustomerSBtn_Click(object sender, EventArgs e) 
     { 
      //Displays the string of names that are stored in cNames 
      //Creates an array to hold Customer Names 
      string[] cNames = new string[100]; 
      for (int i = 0; i < cNames.Length; i++) 
      { 
        cNames[i] = nameTextBox.Text; 
        reportListBox.Items.Add(cNames[i]); 
     } 

答えて

1

あなたが書いているアプリの種類を指定していないです:リサイズ、WPFなど

あなたはまた、あなたのコーディング作業を示しませんでした。通常、テキストボックスがText性質を持っており、また、ユーザーがEnterに当たったときキャッチするテキストボックスの適切なイベントを購読することができ

:ここにあなたの完全なコードを提供せずに

は何を探すための提案です。テキストボックスのTextプロパティから入力した名前を読み取って、リストに追加することができます。 List<string>Textプロパティを空の文字列に設定して、テキストボックスをクリアします。

ユーザーがサマリーボタンをクリックすると、Add()メソッドを使用して、Itemsプロパティを使用してリスト内の要素をリストボックスに追加できます。

これは私が行く方向です。あなたは残りの部分をGoogleにすることができます。ここで

UPDATE#1

は実施例である:

using System; 
using System.Collections.Generic; 
using System.Data; 
using System.Linq; 
using System.Windows.Forms; 

namespace CollectNames 
{ 
    public partial class MainForm : Form 
    { 
     private static readonly List<string> names = new List<string>(); 

     public MainForm() 
     { 
      InitializeComponent(); 

      // Usually we set these event handlers using the 'Properties' tab for each specified control. 
      // => Click on the control once then press F4 so that 'Properties' tab will appear. 
      // Then these event subscriptions will be generated into MainForm.Designer.cs file. 
      // They are here just for clarity. 
      txtName.KeyUp += new System.Windows.Forms.KeyEventHandler(txtName_KeyUp); 
      btnSummary.Click += new System.EventHandler(btnSummary_Click); 
     } 

     private void txtName_KeyUp(object sender, KeyEventArgs e) 
     { 
      if (e.KeyCode == Keys.Enter) 
      { 
       names.Add(txtName.Text); 
       txtName.Text = String.Empty; 

       e.Handled = true; 
      } 
     } 

     private void btnSummary_Click(object sender, EventArgs e) 
     { 
      lstNames.Items.Clear(); 
      lstNames.Items.AddRange(names.Cast<object>().ToArray()); 
     } 
    } 
} 

私はこれらのコントロールを持っている:

  • レーベル:lblName
  • のTextBox:txtName
  • ボタン:btnSummary
  • ListBoxコントロール:lstNames

は、次の2つのメソッドは、指定されたコントロールのイベントハンドラです。

あなたはこのように静的に宣言していることを確認してください:これは将来的に表示するためにすべての入力内容を保存するように、あなたは、このための静的変数が必要な場合があります

The UI

+0

私はこのプログラムにWindowsフォームアプリケーションを使用しています。参考のためにコードのスニペットを掲載しました。コードの例を教えてください。 –

0

:ここ

は、UIです変数:

public static List<string> lstInputs { get; set; } 

TextBoxのKeyDownイベントハンドラを使用すると、キーボードの入力に押された:

private void textBox2_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (lstInputs == null) 
      lstInputs = new List<string>(); 
     if (e.KeyCode == Keys.Enter) 
     { 
      lstInputs.Add(textBox2.Text); 
      textBox2.Text = string.Empty; 
      MessageBox.Show("Message has been saved."); 
     } 
    } 

最後に、forループを使用してすべてのメッセージを取得できます。 Listは動的なので、ここでListを使用しています。これは最大サイズを宣言する必要はありません。しかし、望むなら、通常の文字列配列を使うことができます。

関連する問題