是否有任何C#中的用户控件或主控件或任何其他方式来调用可重用代码

时间:2012-06-19 05:04:51

标签: c#

我是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);

它不起作用.... 事先提前......

2 个答案:

答案 0 :(得分:0)

如果这是针对Windows窗体应用程序,那么您可以Create a User Control,如果您正在开发WPF应用程序,那么您可能会看到以下教程:How to Create a WPF User Control & Use It in a WPF Application ( C# )

答案 1 :(得分:0)

您可以在Windows窗体中创建用户控件,以便通过一百个表单使用。但是,我认为您的代码在维护方面不容易改变。您应该使用委托来处理事件。为了将来的改进,您可以使用委托Execute a delegate in the ui thread (using message pump)轻松定义结果。