簡體   English   中英

C# - 從 Form1 中的文本框加載文本到 Form2 中的文本框

[英]C# - Load Text from Textbox in Form1 into Textbox in Form2

只是一個快速的!

由於物理上沒有空間容納更多文本框,我不得不向我的 Windows 窗體應用程序添加第二個窗體。 一些文本框最終與原始表單上的相同(我知道這並不理想,但是這兩個表單各自寫入單獨的文本文件,因此總體上更容易)

在這種情況下,我希望將原始表單中文本框中的值復制到第二個表單上的重復文本框中(試圖防止重復輸入數據並降低出錯風險)。

因此,我在調用 .Show() 函數的第一個 (Form1) 表單上單擊按鈕以加載第二個表單 (PreAnaestheticChecklist) 的新版本。

    public void btnPreOpChecklist_Click(object sender, EventArgs e)
    {
        //create secondary form for pre-anaesthetic checklist
        PreAnaestheticChecklist checklistForm = new PreAnaestheticChecklist();

        //load pre-anaesthetic checklist form to screen
        checklistForm.Show();
    }

這工作正常,並且表單加載為空白。 我編寫了大量小字符串函數,這些函數返回由 form1 中文本框中的文本組成的字符串。 這些在 PreAnaestheticChecklist_Load 事件中調用。 下面以其中一個傳輸為例顯示了一個示例。

    public string getProcedure()
    {
        //load value from textbox in IOconsole
        string proc = main.txtProcedure.Text;
        //return this to textbox on Checklist
        return proc;
    }

    public void PreAnaestheticChecklist_Load(object sender, EventArgs e)
    {
        //load any values already on main form into respective textboxes
        txtProcName.Text = getProcedure();
        txtPlannedProc.Text = getProcedure();
    }

這是為另外幾個文本框完成的,但即使如此,第二個表單仍加載為空白。

我閱讀並被建議嘗試將 _Load 事件中的所有文本框分配放入加載 form2 的按鈕單擊事件中,但仍然沒有。 我還將所有形式的 Modifiers 屬性更改為“公共”,但仍然沒有!

不知道下一步該往哪里看,因此非常感謝您對此事的任何幫助!

提前致謝,馬克

調用 Show() 時將 Form1 作為Owner 傳入

public void btnPreOpChecklist_Click(object sender, EventArgs e)
{
    //create secondary form for pre-anaesthetic checklist
    PreAnaestheticChecklist checklistForm = new PreAnaestheticChecklist();

    //load pre-anaesthetic checklist form to screen
    checklistForm.Show(this); // <-- passing in the Owner
}

現在,在您的 PreAnaestheticChecklist 表單的 Load() 事件中,將 .Owner 屬性轉換為 Form1 並將其存儲在您的“main”變量中:

public void PreAnaestheticChecklist_Load(object sender, EventArgs e)
{
    this.main = (Form1)this.Owner;

    //load any values already on main form into respective textboxes
    txtProcName.Text = getProcedure();
    txtPlannedProc.Text = getProcedure();
}

暫無
暫無

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

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