在 C# 的視窗應用程式開發中,有時候我們需要在子視窗中取得父視窗的參考,以實現不同視窗之間的資訊交換或操作。這篇教學將會示範如何使用 Owner
屬性來在子視窗中取得父視窗的參考,以及如何進行相關操作。
首先,我們需要建立一個父視窗和一個子視窗。這裡我們使用 Windows Form 進行示範,你可以根據自己的項目需求進行調整。
在 Visual Studio 中,創建新的 Windows Form 專案。然後,設計一個包含按鈕的父視窗,按鈕用於打開子視窗。
using System;
using System.Windows.Forms;
namespace ParentChildFormExample
{
public partial class ParentForm : Form
{
public ParentForm()
{
InitializeComponent();
}
private void openChildButton_Click(object sender, EventArgs e)
{
ChildForm childForm = new ChildForm();
childForm.Owner = this; // 設定子視窗的 Owner 爲父視窗
childForm.ShowDialog();
}
}
}
在專案中,創建一個新的 Windows Form,作為子視窗。
using System;
using System.Windows.Forms;
namespace ParentChildFormExample
{
public partial class ChildForm : Form
{
public ChildForm()
{
InitializeComponent();
}
private void getInfoButton_Click(object sender, EventArgs e)
{
if (this.Owner is ParentForm parentForm)
{
MessageBox.Show($"父視窗的標題為: {parentForm.Text}", "父視窗資訊");
}
else
{
MessageBox.Show("找不到父視窗。");
}
}
}
}
在子視窗中,你可以使用 Owner
屬性來取得父視窗的參考。這樣一來,你就可以根據需求進行資訊交換或操作。
在上述的範例中,當在子視窗的按鈕點擊事件中檢查 Owner
屬性是否為 ParentForm
的實例後,我們使用 MessageBox
顯示了父視窗的標題。你可以根據項目需求,在子視窗中執行其他操作,並使用父視窗的參考來實現更多功能。
透過 Owner
屬性,我們可以在 C# 中輕鬆地在子視窗中取得父視窗的參考,從而實現視窗之間的資訊交換和操作。這種機制在開發多視窗應用程式時特別有用,可以提升用戶體驗並實現更多功能。