C# 如何阻止打开多个表单?
这里发生的事情是,当我点击myListBox中的某个学生以打开他们的详细信息时,将显示一个显示他们详细信息的windows窗体,显示myListBox中第一位教师详细信息的windows窗体也会显示 如果我在我的列表框中点击一位老师,只会为他们打开一个windows窗体,这就是我想要的。我怎样才能让它像这样为学生工作?我是否可以做一些类似于:C# 如何阻止打开多个表单?,c#,foreach,listbox,break,selectedindex,C#,Foreach,Listbox,Break,Selectedindex,这里发生的事情是,当我点击myListBox中的某个学生以打开他们的详细信息时,将显示一个显示他们详细信息的windows窗体,显示myListBox中第一位教师详细信息的windows窗体也会显示 如果我在我的列表框中点击一位老师,只会为他们打开一个windows窗体,这就是我想要的。我怎样才能让它像这样为学生工作?我是否可以做一些类似于: if(myListBox.SelectedIndex == Student) { //code to open details form he
if(myListBox.SelectedIndex == Student)
{
//code to open details form here
}
这就是我为人们打开详细信息表单的方式。如果我没有使用表示myListBox.SelectedIndex==index的If语句。然后,将打开每个人的详细信息表单
private void openInfoButton_Click(object sender, EventArgs e)
{
int index = 0;
foreach (Student student in studentsList)
{
if (myListBox.SelectedIndex == index)
{
PersonDetails studentDetails = new PersonDetails(student);
studentDetails.Show();
break;
}
index++;
}
foreach (Teacher teacher in teacherList)
{
if (myListBox.SelectedIndex == index)
{
PersonDetails teacherDetails = new PersonDetails(teacher);
teacherDetails.Show();
break;
}
index++;
}
}
如果查看
sender
对象,它会告诉您单击了哪个按钮。从那里,您应该知道是显示学生表单还是教师表单您告诉它的是studentDetails.Show()
在foreach循环中。。你还期待什么呢?它被称为调试器,使用它,你会看到wonders@DJKRAZE我还能把它放在哪里?如果我在外部创建Instance,它将不会检测到学生,因此在表单打开时不会显示任何详细信息?如果我错了,我向您道歉,如果我错了,请纠正我。您可以设置一个开关语句,就像Dan Pichelman提到的,为了捕获按钮,这是您的代码/您的设计。也许您应该重新考虑当前的设计,而不知道您的要求是什么,在你的例子中,这就像是盲引导盲
开关(((按钮)发送器)。Name){//case语句在这里}类似的东西,如果你想知道哪个按钮,否则你需要真正提供更具体的信息