我的申请中有一个父母形式和一个孩子形式。让我们将父窗体称为frmCustomers,将子窗体称为frmAccountDetails。 frmCustomers在datagridview控件中具有银行客户的详细信息,例如其姓名,地址,电话号码等。在datagridview中单击按钮时,将弹出frmAccountDetails,其中包含所选客户所拥有的帐户的详细信息。用户可以在frmAccountDetails中编辑详细信息,然后在其中单击“保存”或“取消”按钮。我的问题是关于btnSave_Click事件中应该出现什么。以下哪项是保存在frmAccountDetails中编辑的数据的正确方法?
1。
btnSave_Click(object sender, EventArgs e)
{
// Open a connection to the database from frmAccountDetails
// and save the edited details to the database
}
OR
2。
btnSave_Click(object sender, EventArgs e)
{
// Pass edited details in frmAccountDetails to frmCustomers
// and save the details to the DB in the save click event of that form
}
以上2种方法中哪一种是正确的方法?任何帮助将不胜感激!
答案 0 :(得分:0)
我更喜欢2种方式。因为frmAccountDetails仅显示数据。 我建议您可以使用dependency injection来实现它。
这里是一个例子。我认为这会对您有所帮助。
public interface IEditAccount
{
// you can change the type.
// Save Click Event
void Save(string someData);
// Cancel Event
void Cancel();
}
public partial class frmAccountDetails : Form
{
public IEditAccount EditAccount { set; }
public frmAccountDetails()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{
EditAccount.Save("Some Data");
}
}
public partial class frmCustomers : Form, IEditAccount
{
public frmCustomers()
{
InitializeComponent();
}
private void DisplayAccountDetails(object sender, EventArgs e)
{
var form = new frmAccountDetails();
form.EditAccount = this;
form.Show();
}
public void Save(string someData)
{
// When user click the frmAccountDetails.btnSave_Click_Click you can get the someData
// Save the someData to the database
}
public void Cancel()
{
// user click the cancel
}
}