我有一个仪表板面板,我可以在其中发送和处理表格。 在侧面的按钮上,他们将表单发送到仪表板面板,在用户完成工作之后,他们单击另一个按钮,将另一个表单发送到仪表板。我如何使用“后退”按钮返回上一个表格。 假设(员工详细信息)按钮将表格发送到仪表板面板, 完成工作后,用户单击(所有员工),新表格进入面板。 现在的问题是我有一个“后退按钮” ,那么如何将以前的表单(在本例中为“ Employee Detail”)放入仪表板。
我尝试过在主表单中使用静态表单,但是以这种方式,我只能返回一个阶段。 例如: (员工详细信息) (所有员工)
但是如果行中有多个表单怎么办
(员工详细信息表) (所有员工表格) (删除员工表格) (等等)
命名空间Agency.Forms {
public partial class MainMenuForm : Form
{
public static Form StaticForm;
private void UpdateDashBoardForm(Form myform) //use to get form and add to panel
{
if (myform == null)
{
return;
}
ClearDashBoard();
myform.TopLevel = false;
DashBaordPanel.Controls.Add(myform);
myform.Dock = DockStyle.Fill;
myform.Show();
}
private void ClearDashBoard()
{
foreach (Form item in DashBaordPanel.Controls)
{
if (!item.Equals(StaticForm))
{
item.Dispose();
}
else
{
item.Visible = false;
}
}
}
}
我希望后退按钮可以获取以前添加到仪表板的所有表单,例如表单应存储在堆栈中,单击后退按钮应从堆栈中获取最多的表单并从堆栈中弹出。
帮助:
我需要2个功能
1)将表单添加到静态列表中。void addForm(Form obj);
2)将返回列表中最近的表单并将其从列表Form getForm();
答案 0 :(得分:1)
所以到此为止,您要为该课程提供下一个表格(myform
),然后显示该表格并处置当前的课程StaticForm
,对吗?
您可以做的是将StaticForm添加到列表中,当您“建立”历史记录时,该列表会不断添加。然后,当您要使用“后退”按钮时,您只需查找历史记录中的最后一个表单,然后调用该表单即可。
示例代码:
List<Form> FormHistory = new List<Form>( );
public static Form StaticForm;
private void UpdateDashBoardForm(Form myform) //use to get form and add to panel
{
FormHistory.Add( StaticForm );
// Plus Your code.
}
private void GoBackToPreviousForm()
{
if( FormHistory.Count > 0 )
{
// Plus what ever you need to do to go to the next form.
FormHistory[ FormHistory.Count - 1 ].Show( );
FormHistory.RemoveAt( FormHistory.Count - 1 );
}
else
{
// You are at the first loaded form.
}
}