1

フォーム内から呼び出すと正常に機能するこのコードがありますが、親から同じものを呼び出すと、結果なしでコードが実行されます。

    public void hideHelp()
    {
        //Check in db if panel1 is visible
        SqlCeCommand checkHelp = new SqlCeCommand("Select Show_Help from Options where Opt_Id = 1", this.optionsTableAdapter.Connection);
        if (this.optionsTableAdapter.Connection.State == ConnectionState.Closed) 
         { this.optionsTableAdapter.Connection.Open(); }

        try
        {
            bool showHelp = (bool)(checkHelp.ExecuteScalar());

            this.panel1.Visible = showHelp;
            this.Refresh();

        }
        catch (Exception ex) { MessageBox.Show(ex.Message); }

    }

メインフォームには、次のコードのトグルボタンがあります。

    private void tglHelp_Click(object sender, EventArgs e)
    {

        if (tglHelp.ToggleState.ToString() == "On")
        {
            HRDataSet.OptionsRow updateHelp = hRDataSet.Options.FindByOpt_Id(1);
            try
            {
                updateHelp.Show_Help = true;
                this.optionsTableAdapter.Update(this.hRDataSet);

                Form activeChild = this.ActiveMdiChild;



                if (activeChild.Name == "frmAddEmployees")
                {
                    frmAddEmployees chForm = new frmAddEmployees();
                    chForm.MdiParent = this;


                    chForm.hideHelp();
                }

            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message, Application.ProductName);
            }
            tglHelp.Text = "Help Panel \nOFF";
        }    

何か案は?

4

1 に答える 1

1

このコードでは

            if (activeChild.Name == "frmAddEmployees") 
            { 
                frmAddEmployees chForm = new frmAddEmployees(); 
                chForm.MdiParent = this; 
                chForm.hideHelp(); 
            } 

別のfrmAddEmployeesを開いてMDIに追加しますが、表示しません。activeChildによって識別される現在のfrmAddEmployeesのコードを呼び出すことが目的である場合は、次のようなものを使用する必要があります

            if (activeChild.Name == "frmAddEmployees") 
            { 
                ((frmAddEmployees)activeChild).hideHelp();
            }
于 2012-05-06T14:01:40.640 に答える