重用创建表单来更新功能

本文关键字:更新 新功能 表单 创建 | 更新日期: 2023-09-27 18:09:12

在一个大学项目中,我们正在开发一个普通的CRUD应用程序,我们被告知创建一个相同的create表单和一个Update表单,除了Update表单加载事先在列表中选择的对象的数据外,这两个表单完全相同。

使用相同的Create表单不是更有效吗?

我想在一些东西,如添加一个布尔值的形式构造函数,创建为真,更新为假,但我不知道如果这是好的做法。

像这样:

public partial class frmLocal
{  
     private bool isCreate;
     private int  objId;
     public frmLocal(boolean _isCreate, int _id = 0)
     {
          InitializeComponent();
          isCreate = _isCreate;
          objId = _id;
     } 
     private void frmLocal_Load(object sender, EventArgs e) 
     {
          if(isCreate)
          {
               try 
               {    
                    //Shows blank create form  
               } 
               catch (Exception ex) 
               {    
                    MessageBox.Show(ex.ToString(), "Error.");    
               }
          }
          else
          {
               //Loads an object's data with some stored procedure
          }
    }
}

重用创建表单来更新功能

我认为创建一个公共属性并在创建新表单实例之前设置值是更好的做法。

那么在你的表单中你会有:

public partial class Form2 : Form
{
    public bool IsCreate { get; set; }
    public Form2()
    {
        InitializeComponent();
    }
    private void Form2_Load(object sender, EventArgs e)
    {
        if (IsCreate)
        {
            //load specific controls/data for creating
        }
        else
        {
            //load specific controls/data for updating
        }
    }
}

假设你有一个Form1来打开Form2,你会使用:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        var formCreateUpdate = new Form2 {IsCreate = true};
        formCreateUpdate.Show();
    }
}