我看到很多页面和问题涉及将值从一种形式传递到另一种形式。我想做一些不同的事情。不是值,而是整个表单,作为参数传递。请注意,这不是 MDI 表格。
我有一个带有 2 个按钮的父表单。一个按钮可创建 Child1 表单等。另一个(可选)按钮调用不同的子表单编辑器。
第一个按钮是一个验证按钮,如果有效,会弹出 Child1 表单,其中包含一个填充了键/值对的列表视图框。第二个是带有自己按钮的编辑器。如果按下其中一个(提交)按钮,则应使用新的键值对更新第一个 Child1 表单。
我一直遇到的问题是我似乎无法让 Child1 表单来反映更改。我不知道更新此 Child1 表单的最佳方法是什么。我已经用 EndUpdate 尝试了 BeginUpdate,并刷新了它,现在经过所有尝试,我有点迷失了。我希望有一个人可以帮助我。
我实际上想要做的是刷新 ChildForm1,说它是一个收件箱,当某些东西被“保存”或从第二个子窗体编辑器添加时。在第二个子窗体编辑器中单击按钮,第一个子窗体应该刷新。
父窗体:
public ChildForm1 MyboxofValues;
private void btn1_Click(object sender, EventArgs e)
{
MyboxofValues = new ChildForm1();
MyboxofValues.Show();
}
private void btn2_Click(object sender, EventArgs e)
{
Editor myEditor = new Editor();
myEditor.Show();
}
ChildForm1:
public ChildForm1()
{
InitializeComponent();
updateMe();
}
public void updateMe()
{
listView1.Items.Clear();
if (MainCode.subRows.Count > 0)
{
foreach (KeyValuePair<string, string> element in MainCode.subRows)
{
ListViewItem lvi = new ListViewItem(element.Value);
lvi.SubItems.Add(element.Key);
listView1.Items.Add(lvi);
}
}
}
编辑器形式:
private ChildForm1 originalForm = new ChildForm1();
private void btnSubmit_Click(object sender, EventArgs e)
{
originalForm.updateMe();
}
我敢肯定这很容易,但我做不到。如果有人可以提供帮助,我们将不胜感激,为我节省几个小时!如果有更好的方法来更新提交结果也可以,请举个例子?
出于测试目的,我为 ChildForm1 创建了一个“刷新”按钮,它可以工作!(它实际上只是调用了updateMe()。所以我认为这很奇怪,我正在创建表单的一个新实例并试图更改这个不存在的(null)表单而不是实际的ChildForm1。但我想刷新listviewBox从编辑器表单中。