Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual C:如何将单击事件附加到列表框中的项目?_C#_Visual Studio_Listbox_Listboxitem_Mouseclick Event - Fatal编程技术网

C# Visual C:如何将单击事件附加到列表框中的项目?

C# Visual C:如何将单击事件附加到列表框中的项目?,c#,visual-studio,listbox,listboxitem,mouseclick-event,C#,Visual Studio,Listbox,Listboxitem,Mouseclick Event,请参见上面的GUI设计 我正在创建一个程序,用户通过姓名、地址、电话输入联系人,这些联系人存储在并行数组中。 然后,该程序将所有输入的联系人存储到列表框中。然后,我希望用户能够单击任何姓名,并在相邻的文本框中显示此人的完整联系信息。我的问题是如何创建一个事件,每次单击列表框中的新项目时,都会显示其信息 输入将信息存储到数组中并将姓名添加到联系人列表的按钮: private void button1_Click(object sender, EventArgs e) { f

请参见上面的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());

 }

您希望ListBox订阅Click事件,并从中调用DisplayContact方法

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

从这里滚动,直到找到单击操作。双击事件的名称,在本例中:单击,VisualStudio将自动将此控件订阅到单击事件并创建一个方法

在表单的.cs文件中,您将找到生成的方法,该方法遵循您可能熟悉的格式。但这里是您调用DisplayContact方法的地方:

    private void listBox1_Click(object sender, EventArgs e)
    {
        DisplayContact();
    }
您可以为您能想到的任何事件执行此操作,但仅向表单的代码中添加一个方法并不足以使此操作成功。Visual Studio会自动生成代码,告知程序ListBox正在等待此类事件,并且该事件发生在窗体的设计器文件中:

^^这来自InitializeComponent方法中的FormName.Designer.cs文件

希望这有帮助。

您可以使用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];
}
希望有帮助