c# -将文本从Form1的文本框加载到Form2的文本框
本文关键字:文本 加载 Form2 Form1 | 更新日期: 2023-09-27 18:05:14
就一个!
我不得不添加第二个窗体到我的windows窗体应用程序,由于没有更多的文本框的物理空间。一些文本框最终与原始表单上的相同(我知道这不是理想的,但这两个表单各自写入单独的文本文件,因此总体上更容易)
在这种情况下,我希望原始表单的文本框中的值被复制到第二个表单的重复文本框中(试图防止双重数据输入并降低错误风险)。
所以,我有一个按钮点击第一个表单(Form1),调用。show()函数加载第二个表单(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属性更改为"Public",但仍然一无所获!
不知道下一步在哪里看,所以任何帮助与此事是非常感激的!
提前感谢,div标记
在调用Show():时将Form1传递为所有者
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();
}