[英]Updating Form1's widgets by clicking Form2's button in Visual C# Windows Forms
我是Visual C#的新手,正在編寫具有多種形式的GUI應用程序。 一種形式是主窗口,其余形式是某種選項窗口。 顯示選項窗口時,我需要向其中加載一些數據(例如,窗口編輯框的字符串),然后對其進行編輯並在關閉選項窗口時返回到主窗口。 有什么簡單的方法可以實現嗎? 我已經找到了一些解決方案, 例如 ,或兩種形式之間的c#事件處理 ,但我無法真正使其符合我的需求。 我當時正在考慮在構造函數中傳遞數據,但是如何取回它呢? 我發現了一些有關ShowDialog的信息,但是正如我所說的,我是C#的新手(昨天開始^^),不知道我是否可以使用它。
有什么想法嗎?
我發現以下先前的答案,概述了將特定屬性從一種形式發送到另一種形式:
using關鍵字還將確保正確清理表單,這是表單用法的鏈接(請雙關語): http : //msdn.microsoft.com/zh-cn/library/vstudio/yh598w02。 ASPX
老實說,我也遇到過同樣的問題,我不得不說,在進行討論之前,我只是將父表單本身傳遞給孩子,然后以這種方式對其進行更改。 如:
ChildForm child = new ChildForm(this); //from the parent
和
public ChildForm(ParentForm parent)
{
this.parent = parent;
}
不過,可能不是最好的約定,因為您可能不需要像孩子一樣從父級那里訪問太多內容。
謝謝大家,我想我終於明白了。 Idle_Mind,按照我的觀點,您的想法是最簡單的,因此我決定使用它。 如果其他人有這樣的問題,這是我編寫的代碼:
在主窗口窗體中:單擊按鈕時,將出現一個新窗體; 關閉它后,label1顯示以該形式鍵入的文本
private void Button1_Click(object sender, EventArgs e)
{
LoadDataForm loaddata = new LoadDataForm("initial value");
if (loaddata.ShowDialog() == DialogResult.OK)
{
label1.Text = loaddata.textBox1.Text;
}
}
在加載數據表單中:傳遞給表單構造函數的參數出現在textBox1中; textBox1的Modifiers屬性必須修改為“ public”
public LoadDataForm(string initvalue)
{
InitializeComponent();
textBox1.Text = initvalue;
}
private void ApplyButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
此致,Mopsiok
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.