2017-03-28 12 views
1

enter image description hereVisual C# : 목록 상자의 항목에 클릭 이벤트를 첨부하려면 어떻게합니까?

참조 GUI 디자인은 위의

나는 사용자가 병렬로 배열에 저장되어있는 이름, 주소, 전화로 연락처를 입력하는 프로그램을 만드는 오전. 프로그램은 입력 된 모든 연락처를 목록 상자에 저장합니다. 그런 다음 사용자가 임의의 이름을 클릭하고 그 사람의 완전한 연락처 정보를 인접한 텍스트 상자에 표시 할 수있게하려고합니다. 내 질문은 어떻게 내가 목록 상자에 새 항목을 클릭 할 때마다 그들의 정보가 표시됩니다 이벤트를 만드는 것입니다.

private void button1_Click(object sender, EventArgs e) 
    { 
     first[mindex] = txtFirst.Text; 
     last[mindex] = txtLast.Text; 
     email[mindex] = txtEmail.Text; 
     address[mindex] = txtAddress.Text; 
     cell[mindex] = txtCell.Text; 

     lstContacts.Items.Add(first[mindex] + " " + last[mindex]); 

     mindex++; 

     txtLast.Text = ""; 
     txtFirst.Text = ""; 
     txtEmail.Text = ""; 
     txtAddress.Text = ""; 
     txtCell.Text = ""; 
     txtLast.Focus(); 

    } 

이 내가 연락처 이름을 클릭 할 때마다 실행되도록 원하는 것입니다 :

배열에 정보를 저장하고 목록 연락 할 이름을 추가 버튼을 입력

private void DisplayContact() 
    { 
     int dispIndex; 
     dispIndex = lstContacts.SelectedIndex; 

     txtOutput.Text = "Name: " + "\t\t" + first[dispIndex] + last[dispIndex] + Environment.NewLine + 
         "Address: " + "\t\t" + address[dispIndex] + Environment.NewLine + 
         "Cell: " + "\t\t" + cell[dispIndex] + Environment.NewLine + 
         "Email: " + "\t\t" + email[dispIndex]; 
    } 

을 그냥 이런 것들을 연결하는 방법을 모른다.

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    var i = listBox1.Items[listBox1.SelectedIndex].ToString(); 
    MessageBox.Show(i.ToString()); 

} 

답변

2

감사.

디자인보기에서이 기능을 추가 할 ListBox를 선택하십시오. 등록 정보 창에서 번개 모양 아이콘을 클릭하여 이벤트 탭을여십시오. 당신이 클릭 작업을 찾을 때까지

여기에서

Events Tab

, 스크롤합니다. 이벤트 이름 (이 경우 "Click")을 두 번 클릭하면 Visual Studio에서 자동으로이 컨트롤을 Click 이벤트에 구독하고 메서드를 만듭니다.

Click Event

는 폼의 .cs 파일에서, 당신은 당신이 아마 익숙한 형식을 다음과 생성 방법을 찾을 수 있습니다. 그러나 여기 당신이 당신의 DisplayContact 메서드를 호출하는 곳이다 :

private void listBox1_Click(object sender, EventArgs e) 
    { 
     DisplayContact(); 
    } 

당신은 당신이 생각할 수있는 모든 이벤트에 대해이 작업을 수행 할 수 있습니다 - 단순히 폼의 코드 방법을 추가하고이 성공하게하는 것만으로는 충분하지. Visual Studio에서 자동으로 목록 상자는 이벤트를 기다리는 프로그램을 알려주는 코드를 생성하고, 그 폼의 디자이너 파일에서 발생 :에, 즉 FormName.Designer.cs 파일에서입니다 ^^

Designer code

InitializeComponent 메서드

희망이 도움이됩니다.

0

당신은 목록 상자 Click 이벤트에 가입하고자 할 - 거기에서 당신은 당신의 DisplayContact 메서드를 호출 할 수 있습니다 : 어떤 도움의 SelectedIndexChanged 속성에

1

이 경우 SelectionChanged 이벤트를 사용할 수 있습니다. 귀하의 목록 상자에 SelectionChanged 추가

private void listBox_SelectionChanged(object sender, EventArgs e) 
{ 
     int dispIndex; 
     dispIndex = lstContacts.SelectedIndex; 

     txtOutput.Text = "Name: " + "\t\t" + first[dispIndex] + last[dispIndex] + Environment.NewLine + 
         "Address: " + "\t\t" + address[dispIndex] + Environment.NewLine + 
         "Cell: " + "\t\t" + cell[dispIndex] + Environment.NewLine + 
         "Email: " + "\t\t" + email[dispIndex]; 
} 

는 희망이 도움이!