1

私は c# プログラミングが初めてで、非常にシンプルに感じるかもしれません...追加、更新、削除、キャンセル、閉じるボタンのあるメニューバー(ツールストリップ)を使用しています...追加ボタンに....

private void btn_Add_Click(object sender, EventArgs e)
    {
NewSavebtn();
}

public void NewSavebtn()
        {
           if (btn_Add.Text == "&New")
            {
                btn_Add.Text = "&Save";
                btn_Edit.Enabled = false;
                btn_Delete.Enabled = false;
                txtDetailName.Enabled = true;
                TxtHeadName.Enabled = true;


                   UnLock();
                }



else if (btn_Add.Text == "&Save")
            {

            save_data();
            Lock(); 
            btn_Add.Text = "&Add";
            btn_Edit.Enabled = true;
            btn_Delete.Enabled = true;
            ClearAll();
            txtDetailName.Enabled = false;
         }
        else
            MessageBox.Show("cant save data");
    }


    #region Clear Lock Unlock
    public void ClearAll()
    {

        foreach (Control ctl in this.Controls)
        {
            if (ctl is TextBox || ctl is ComboBox)
            {
                ctl.Text = "";
            }
        }

    }

    public void Lock()
    {

        foreach (Control ctl in this.Controls)
        {
            if (ctl is TextBox || ctl is ComboBox)
            {
                ctl.Enabled=false ;
            }
        }

    }
    public void UnLock()
    {

        foreach (Control ctl in this.Controls)
        {
            if (ctl is TextBox || ctl is ComboBox)
            {
                ctl.Enabled=true ;
            }
        }

    }
    #endregion

ほぼ 200 以上のフォームに同じコードを追加したいと考えています。誰か私がそれのために何をすべきか教えてください。C#のasp.netのようなユーザーコントロールまたはマスターコントロールはありますか?これにより、共通コードを脇に置いて必要なときに呼び出すことができます... NewSavebtn()と他のメソッドを別のクラスに配置すると、class1と言って呼び出しようとするからですform1のように...

class1 c1 =new class1(this);
c1.NewSavebtn(this);

うまくいきません....よろしくお願いします....

4

2 に答える 2

0

これがWindowsフォームアプリケーション用の場合は、ユーザーコントロールを作成できます。また、WPFアプリケーションを開発している場合は、次のチュートリアルが表示される場合があります。WPFユーザーコントロールを作成してWPFアプリケーションで使用する方法(C#)

于 2012-06-19T05:09:01.960 に答える
0

Windowsフォームでユーザーコントロールを作成して、100のフォームで使用できます。ただし、メンテナンスの面でコードを変更するのは簡単ではないと思います。イベントを処理するには、デリゲートを使用する必要があります。将来の改善のために、デリゲートを使用して結果を簡単に定義できます。UIスレッドでデリゲートを実行します(メッセージポンプを使用)

于 2012-06-19T05:10:58.167 に答える