参见上面的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];
}
只是不知道如何连接这些东西。任何帮助表示赞赏
答案 0 :(得分:2)
在SelectedIndexChanged属性上:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var i = listBox1.Items[listBox1.SelectedIndex].ToString();
MessageBox.Show(i.ToString());
}
答案 1 :(得分: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];
}
希望它有所帮助!
答案 2 :(得分:0)
您希望ListBox订阅Click事件 - 然后您可以调用DisplayContact方法。
从“设计视图”中,选择要添加此功能的ListBox。在属性窗口中,单击闪电图标以打开事件选项卡。
从此处滚动,直至找到“单击操作”。双击名称(事件的名称,在本例中为“Click”),Visual Studio将自动将此控件订阅到click事件并创建方法。
在Form的.cs文件中,您将找到生成的方法,该方法遵循您可能熟悉的格式。但是这里是你调用DisplayContact方法的地方:
private void listBox1_Click(object sender, EventArgs e)
{
DisplayContact();
}
您可以为任何您能想到的事件执行此操作 - 但只是在Form的代码中添加方法并不足以使其成功。 Visual Studio自动生成代码,告诉程序ListBox正在等待这样的事件,并且在表单的Designer文件中发生:
^^这是来自FormName.Designer.cs文件,在InitializeComponent方法中。
希望这有帮助。