C# 多形式相关问题 private int ValidateData() { int标志=1; 如果(txtEmpNo.TextLength。比如: Form2 frm2 = Application.OpenForms["Form2"] as Form2; if(frm2 != null) frm2.Close(); 你能给我一些建议吗??我真的很感激。。 try { //your code } catch (IndexOutOfRangeException e) { //handling } catch (OleDbException e) { //handling } catch (Exception ex) { //handling }

C# 多形式相关问题 private int ValidateData() { int标志=1; 如果(txtEmpNo.TextLength。比如: Form2 frm2 = Application.OpenForms["Form2"] as Form2; if(frm2 != null) frm2.Close(); 你能给我一些建议吗??我真的很感激。。 try { //your code } catch (IndexOutOfRangeException e) { //handling } catch (OleDbException e) { //handling } catch (Exception ex) { //handling },c#,winforms,C#,Winforms,我已经创建了一个主窗体,当点击这些按钮时,其中包括4个按钮,另外4个打开的窗体…我想实现一些功能,如果我点击一个按钮,它将打开相应的窗体,如果其他窗体打开,那么其他窗体将自动关闭…第二件事是,如果窗体已经打开,则不再打开它只要集中注意力 我已经为此编写了一些代码,但无法获得所需的输出。使用属性从应用程序中获取所有当前打开的表单。您可以访问它们的对象并关闭它们或执行相关操作。比如: private int ValidateData() { int flag = 1; if (txt

我已经创建了一个主窗体,当点击这些按钮时,其中包括4个按钮,另外4个打开的窗体…我想实现一些功能,如果我点击一个按钮,它将打开相应的窗体,如果其他窗体打开,那么其他窗体将自动关闭…第二件事是,如果窗体已经打开,则不再打开它只要集中注意力

我已经为此编写了一些代码,但无法获得所需的输出。

使用属性从应用程序中获取所有当前打开的表单。您可以访问它们的对象并关闭它们或执行相关操作。比如:

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());

        }
    }
}

您也可以考虑对代码进行很少的更改,例如,您的方法<代码> ValueDATA ATA/<代码>可以返回<代码> BOOL 而不是INT,并且重要的是,catch块应该首先捕获特定的异常,然后是基<代码>异常< /代码>。比如:

Form2 frm2 = Application.OpenForms["Form2"] as Form2;
if(frm2 != null)
   frm2.Close();

你能给我一些建议吗??我真的很感激。。
try
{
    //your code
}
catch (IndexOutOfRangeException e)
{
    //handling
}
catch (OleDbException e)
{
    //handling
}

catch (Exception ex)
{
    //handling
}