C# 防止ASP.NET C中写入函数的冗余

C# 防止ASP.NET C中写入函数的冗余,c#,asp.net,C#,Asp.net,我不熟悉使用ASP.NET和C。我只想问一下,是否有任何方法可以将这行代码放入单个public void函数中,每当我需要它时,我都会调用该函数以避免冗余。提前谢谢 protected void Edit_Click(object sender, EventArgs e) { Edit.Enabled = false; Save.Enabled = true; Cancel.Enabled = true; TextBox1.Enab

我不熟悉使用ASP.NET和C。我只想问一下,是否有任何方法可以将这行代码放入单个public void函数中,每当我需要它时,我都会调用该函数以避免冗余。提前谢谢

protected void Edit_Click(object sender, EventArgs e)
{
        Edit.Enabled = false;
        Save.Enabled = true;
        Cancel.Enabled = true;
        TextBox1.Enabled = true;
        TextBox2.Enabled = true;
        TextBox3.Enabled = true;
        TextBox4.Enabled = true;
        TextBox5.Enabled = true;
}

protected void Save_Click(object sender, EventArgs e)
{   
    Edit.Enabled = true;
    Save.Enabled = false;
    Cancel.Enabled = false;

    TextBox1.Enabled = false;
    TextBox2.Enabled = false;
    TextBox3.Enabled = false;
    TextBox4.Enabled = false;
    TextBox5.Enabled = false;
}

protected void Cancel_Click(object sender, EventArgs e)
{
    Edit.Enabled = true;
    Save.Enabled = false;
    Cancel.Enabled = false;

    TextBox1.Enabled = false;
    TextBox2.Enabled = false;
    TextBox3.Enabled = false;
    TextBox4.Enabled = false;
    TextBox5.Enabled = false;
}

通过编写如下处理程序,您应该能够使用一个函数作为所有三个按钮的处理程序

protected void EditSaveCancel_Click(object sender, EventArgs e)
{
    Edit.Enabled = (sender != Edit);
    Save.Enabled = !Edit.Enabled;
    Cancel.Enabled = !Edit.Enabled;
    TextBox1.Enabled = !Edit.Enabled;
    TextBox2.Enabled = !Edit.Enabled;
    TextBox3.Enabled = !Edit.Enabled;
    TextBox4.Enabled = !Edit.Enabled;
    TextBox5.Enabled = !Edit.Enabled;
}

即使这三个按钮有不同的功能,我也可以使用它吗?示例:单击“保存”按钮时,它将保存更改;单击“取消”时,它将取消文本框中的更改。是的,您可以,只需从原始处理程序传递发件人和e。最好将其移动到另一个方法,如void SetEditablebool editable{}然后像SetEditabletrue/false那样从clicks@Selvin更好几乎总是个人品味的问题。至少在没有解释为什么它会更好的情况下。这个方法可以通过它的名字来解释它的功能,它可以与其他事件一起重用,比如fx一些下拉菜单。。。我会把两者联系起来。。。一次点击甚至另一种方法:只要保存/取消/编辑不需要任何其他操作,为什么edit.Enabled=也不在集合内。。。而且它和OP不一样code@Selvin. 谢谢你的评论。“我想我已经调整了。”塞尔文,刚才也注意到你对另一个答案的评论…:您好,谢谢您的回答,它的工作我只是调整了代码,以适应我的需要。再次感谢
protected void Edit_Click(object sender, EventArgs e)
{
    SetEnabled(true);
}

protected void Save_Click(object sender, EventArgs e)
{  
    SetEnabled(false);
}

 protected void Cancel_Click(object sender, EventArgs e)
{
    SetEnabled(false);
}

private void SetEnabled(bool editEnabled)
{
    Edit.Enabled = !editEnabled;
    Save.Enabled = editEnabled;
    Cancel.Enabled = !editEnabled;
    TextBox1.Enabled = !editEnabled;
    TextBox2.Enabled = !editEnabled;
    TextBox3.Enabled = !editEnabled;
    TextBox4.Enabled = !editEnabled;
    TextBox5.Enabled = !editEnabled;
}