我假设这是WinForms?您应该将您的员工条目设计为用户控件。然后,您可以在新员工的每个请求中向该表单添加该控件的新实例。你很可能有一个单独的Employee对象,你可以传递给你的EmployeeEntry用户控件的每个实例。
EDIT1
创建具有在顶部的菜单条和所谓tsmiNewEmployee一个菜单项的形式。将选项卡控件添加到名为tabEntryForms的表单,并将其填充样式设置为Dock。从中删除所有默认标签页。
添加类:
public class EmployeeRecord
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime HireDate { get; set; }
}
添加一个名为EmployeeEntry用户控件。把osme Firts /姓放在它上面编辑cotrols等。添加一个保存按钮和一个取消按钮。
public partial class EmployeeEntry : UserControl
{
public event EventHandler Save;
public event EventHandler Cancel;
private EmployeeRecord empBeingEdited = null;
public EmployeeRecord Employee
{
get
{
return empBeingEdited;
}
set
{
empBeingEdited = value;
if (empBeingEdited == null)
{
// clear controls
}
else
{
// populate controls with employee values
}
}
}
public EmployeeEntry()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{
if (Save != null)
Save(this, EventArgs.Empty);
}
private void btnCancel_Click(object sender, EventArgs e)
{
if (Cancel != null)
Cancel(this, EventArgs.Empty);
}
}
而且在具有标签控件的主要形式有:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void tsmiNewEmployee_Click(object sender, EventArgs e)
{
TabPage tab = new TabPage("New Employee Entry");
EmployeeEntry empEntry = new EmployeeEntry();
empEntry.Employee = new EmployeeRecord();
empEntry.Save += new EventHandler(EmployeeEntry_Save);
empEntry.Cancel += new EventHandler(EmployeeEntry_Cancel);
tab.Controls.Add(empEntry);
empEntry.Dock = DockStyle.Fill;
tabEntryForms.TabPages.Add(tab);
}
private void EmployeeEntry_Save(object source, EventArgs args)
{
EmployeeEntry empEntry = source as EmployeeEntry;
MessageBox.Show("Saved");
TabPage parentTab = empEntry.Parent as TabPage;
parentTab.Controls.Remove(empEntry);
tabEntryForms.Controls.Remove(parentTab);
}
private void EmployeeEntry_Cancel(object source, EventArgs args)
{
EmployeeEntry empEntry = source as EmployeeEntry;
MessageBox.Show("NOT Saved");
TabPage parentTab = empEntry.Parent as TabPage;
parentTab.Controls.Remove(empEntry);
tabEntryForms.Controls.Remove(parentTab);
}
}
应该让你开始那。
给我一个例子,请... – Gopal
@Gopal我会掀起一些东西 – tcarvin