我看到很多頁面和涉及將值從一個表單傳遞到另一個表單的問題。我想做一些有點不同的事情。不是值,而是整個表單,作爲參數傳遞。請不要這不是一個MDI表格。將完整的子表單傳遞給另一個子表單
我有一個有2個按鈕的父窗體。一個按鈕創建一個Child1窗體等等。另一個(可選)按鈕調用另一個子窗體編輯器。
第一個按鈕是一個驗證按鈕,如果有效的話,調出一個帶有鍵/值對的listviewbox的Child1表單。 第二個是帶有自己按鈕的編輯器。如果其中一個(提交)按鈕被按下,則第一個Child1表單應該用一個新的keyvaluepair進行更新。
我一直有的問題是,我似乎無法得到Child1窗體來反映更改。我不知道更新此Child1表單的最佳方法是什麼。我已經用EndUpdate嘗試了BeginUpdate,並刷新它,現在嘗試了所有嘗試,我已經有點失落了。我希望有一個人可以幫助我。
我實際上想要做的是刷新ChildForm1,當收件箱被「保存」或從第二個子窗體編輯器添加時,將其稱爲收件箱。在第二個childform編輯器中點擊按鈕,第一個Childform應該刷新。
父窗體:
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);
}
}
}
EditorForm:
private ChildForm1 originalForm = new ChildForm1();
private void btnSubmit_Click(object sender, EventArgs e)
{
originalForm.updateMe();
}
我敢肯定,這是很容易的,但我不能得到它。如果有人能幫助它,將不勝感激,節省我的時間!如果有更好的方式來更新提交結果也很好,請舉個例子嗎?
出於測試目的,我爲ChildForm1創建了一個「刷新」按鈕,它的工作原理! (它實際上只是調用updateMe(),所以這是一個奇怪的東西,我認爲我正在創建一個新的窗體實例,並試圖改變這個不存在的(空)窗體而不是實際的ChildForm1,但是我想刷新listviewBox從出編輯表格。
這是正確的鏈接嗎?我沒有看到關於MVP的任何信息 – SuusvdVen