2017-09-25 1 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에서하실 수 있습니다.

업데이트 # 여기에 1

작동하는 예입니다

  • 라벨 : lblName
  • 텍스트 상자 :

    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()); 
         } 
        } 
    } 
    

    나는 이러한 컨트롤을 가지고이의 txtName

  • 버튼 : btnSummary
  • 목록 상자 : lstNames

두 가지 방법 지정된 컨트롤에 대한 이벤트 처리기입니다.

이 정적을 선언해야합니다 :이 미래에 표시하기 위해 모든 입력을 절약 할 수 있도록이 정적 변수를해야 할 수도 있습니다

The UI

+0

이 프로그램에 Windows Form 응용 프로그램을 사용하고 있습니다. 참조 용 코드 조각을 게시했습니다. 코드의 예를 들어 주시겠습니까? –

0

: 여기

는 UI입니다 변수 :

그런 다음 TextBox의 KeyDown 이벤트 처리기를 사용하여 키보드에서 Enter 키가 있는지 감지 할 수 있습니다. 누름 :

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를 사용하고 있습니다. 원하는 경우 일반 문자열 배열을 사용할 수 있습니다.

관련 문제