2017-03-28 28 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]; 
    } 

刚不知道如何连接这些东西。任何帮助表示赞赏

回答

2

上的SelectedIndexChanged属性:

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

} 
0

你想ListBox中订阅点击事件 - 并从那里你可以叫你DisplayContact方法。

从您的设计视图中,选择您想要添加此功能的列表框。在属性窗口中,单击闪电图标以打开“事件”选项卡。

Events Tab

从这里,滚动,直到你找到单击操作。双击名称(在本例中为“Click”),Visual Studio将自动将此控件订阅到click事件并创建一个方法。

Click Event

在窗体的cs文件,你会发现生成的方法,随后你可能熟悉的格式。但是,在这里你打电话给你的DisplayContact方法:

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

你可以为你能想到的任何情况下做到这一点 - 但简单地添加到窗体的代码的方法是远远不够的,使这个成功的。 Visual Studio中自动生成,它告诉你的程序列表框正在等待该事件的代码,这种情况发生在窗体的设计文件:

Designer code

^^从FormName.Designer.cs文件,该文件中, InitializeComponent方法。

希望这会有所帮助。

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]; 
} 

希望它有帮助!

相关问题