簡體   English   中英

返回面板(C#)winform中的上一個表單

[英]Go back to Previous Form inside Panel (C#) winform

我有一個儀表板面板,我可以在其中發送和處理表格。 在側面的按鈕上,他們將表單發送到儀表板面板,在用戶完成工作之后,他們單擊另一個按鈕,將另一個表單發送到儀表板。 我如何使用“后退”按鈕返回上一個表格。 假設(員工詳細信息)按鈕將表格發送到儀表板面板,工作完成后,用戶單擊(所有員工) ,新表格進入面板。 現在的問題是我有一個“后退按鈕”,那么如何將以前的表單(在本例中為“ 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並將其從列表中刪除Form getForm();

所以在這一點上,您StaticForm該類提供下一個表單( 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.
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM