我想知道是否有一般的解決方案,當我有父窗體,並有兩個按鈕,例如新建和編輯..現在我不想創建兩個單獨的對話框,而是確定我點擊了一個按鈕或另一個按鈕,並在對話框中改變按鈕上的文本,功能以及從主窗體傳遞一些數據。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