C# Visual C:如何将单击事件附加到列表框中的项目?
请参见上面的GUI设计 我正在创建一个程序,用户通过姓名、地址、电话输入联系人,这些联系人存储在并行数组中。 然后,该程序将所有输入的联系人存储到列表框中。然后,我希望用户能够单击任何姓名,并在相邻的文本框中显示此人的完整联系信息。我的问题是如何创建一个事件,每次单击列表框中的新项目时,都会显示其信息 输入将信息存储到数组中并将姓名添加到联系人列表的按钮: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
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];
}
希望有帮助