2014-01-23 55 views
0

我想知道是否有一般的解决方案,当我有父窗体,并有两个按钮,例如新建和编辑..现在我不想创建两个单独的对话框,而是确定我点击了一个按钮或另一个按钮,并在对话框中改变按钮上的文本,功能以及从主窗体传递一些数据。Windows窗体中的条件对话框

感谢您的建议!

回答

3

创建一个表单,因为(大部分时间)编辑和新的相同的实体将需要几乎相似的接口。

在这种形式定义一个重载的构造函数接收参数是这样的:

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)。

+1

嗯,这是真正的简单解决方案,我也没多想,但它的作品般的魅力,谢谢! – Mythago

0

您也可以为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; 
相关问题