我想知道是否有一般的解决方案,当我有父窗体,并有两个按钮,例如新建和编辑..现在我不想创建两个单独的对话框,而是确定我点击了一个按钮或另一个按钮,并在对话框中改变按钮上的文本,功能以及从主窗体传递一些数据。Windows窗体中的条件对话框
感谢您的建议!
我想知道是否有一般的解决方案,当我有父窗体,并有两个按钮,例如新建和编辑..现在我不想创建两个单独的对话框,而是确定我点击了一个按钮或另一个按钮,并在对话框中改变按钮上的文本,功能以及从主窗体传递一些数据。Windows窗体中的条件对话框
感谢您的建议!
创建一个表单,因为(大部分时间)编辑和新的相同的实体将需要几乎相似的接口。
在这种形式定义一个重载的构造函数接收参数是这样的:
public MyForm() //for creating new record
{
}
public MyForm(int recordID) //For opening form with record based on the passed id
{
}
现在所说的这些构造从各自的按钮。
在窗体本身上,您可以修改保存按钮上的逻辑以查看窗体是否打开某个特定的ID或记录ID为null/0。相应地执行数据库操作(INSERT/UPDATE)。
您也可以为form
制作enum
,然后针对哪种模式进行switch
声明。例如;
public partial class UserForm : Form
{
public enum UserFormMode {Edit, Add, Delete};
private UserFormMode mode;
public UserForm()
{
InitializeComponent();
}
public UserFormMode Mode
{
get { return mode; }
set
{
mode = value;
switch (mode)
{
case UserFormMode.Add:
// adjust your form
break;
case UserFormMode.Delete:
// adjust your form
break;
case UserFormMode.Edit:
// adjust your form
break;
}
}
}
}
而且从父窗体通话将包括:
UserForm dlg = new UserForm();
dlg.Mode = UserForm.UserFormMode.Edit;
嗯,这是真正的简单解决方案,我也没多想,但它的作品般的魅力,谢谢! – Mythago