多个表单相关问题
本文关键字:问题 表单 | 更新日期: 2023-09-27 18:15:02
private int ValidateData()
{
int flag = 1;
if (txtEmpNo.TextLength < 8)
{
MessageBox.Show("Employee Number must be 8 Digits Long","Message");
flag = 0;
}
return flag;
}
private void btnProfile_Click(object sender, EventArgs e)
{
try
{
Profile pf = new Profile("");
if (ValidateData() == 1)
{
if (pf!=null)
{
pf = new Profile("");
pf.Focus();
}
else
{
pf = new Profile(txtEmpNo.Text);
pf.Show();
}
Qualification qa = new Qualification("");
qa.Close();
Experience ex = new Experience("");
ex.Close();
History hs = new History("");
hs.Close();
}
}
catch (Exception ex)
{
if (ex is IndexOutOfRangeException)
{
MessageBox.Show("Employee Not Found");
}
else if (ex is OleDbException)
{
MessageBox.Show("Please Enter Employee Valid No.");
}
else
{
MessageBox.Show(ex.ToString());
}
}
}
我已经创建了一个主要的表单,其中包括4个按钮,当点击这些按钮时,另外4个表单打开…我想实现一些功能,如果我点击一个按钮,它将打开各自的形式,如果其他形式是开放的,那么其他形式自动关闭…第二点是,如果表单已经打开了就不要再打开它只需将它。
我已经为此做了一些编码,但是我不能得到想要的输出
使用Application.OpenForms
属性从应用程序中获取所有当前打开的表单。您可以访问并关闭其对象或执行相关操作。如:
Form2 frm2 = Application.OpenForms["Form2"] as Form2;
if(frm2 != null)
frm2.Close();
你也可以考虑对你的代码做一些改变,例如你的方法ValidateData
可以返回一个bool
而不是int,重要的是你的catch块应该先捕获特定的异常,然后捕获基本的Exception
。如:
try
{
//your code
}
catch (IndexOutOfRangeException e)
{
//handling
}
catch (OleDbException e)
{
//handling
}
catch (Exception ex)
{
//handling
}