[C#] 透過設定Owner在子視窗中取得父視窗的參考

閱讀時間約 3 分鐘

在 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# 中輕鬆地在子視窗中取得父視窗的參考,從而實現視窗之間的資訊交換和操作。這種機制在開發多視窗應用程式時特別有用,可以提升用戶體驗並實現更多功能。

64會員
118內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言0
查看全部
發表第一個留言支持創作者!
程式輕鬆玩 的其他內容
在這篇教學中,我們將會學習如何使用 C# 語言再設定的時間動作,模擬批次自動化功能。使用 System.Windows.Forms.Timer 來達到這個目的。同時,我們也將會示範如何取得目前時間的不同屬性,像是年份、日期、分鐘等。
在程式設計中,錯誤處理是一個不可或缺的部分。C#提供了強大的錯誤處理機制,讓我們能夠更有效地管理和處理程式執行中可能出現的問題。本篇文章將帶你深入了解如何在C#中捕捉與處理錯誤,確保你的程式在遇到問題時能夠優雅地回應。
在這份教學文章中,我們將一步步示範如何使用C#程式語言和ZXing套件生成一個不顯示資訊的CODE128條碼。這將有助於您在自己的應用程式中生成純條碼圖片,而無需顯示任何附加的文字資訊。
在 C# 中,List 是一個常見且實用的集合類型,可以儲存一組元素並進行各種操作。本篇教學將帶你深入了解如何操作 List 以及進行降冪排序。我們將使用一系列範例程式碼來說明這些概念。
JSON(JavaScript Object Notation)是一種常用的數據交換格式,用於在不同的應用程序之間傳遞結構化數據。在C#中,我們可以使用Newtonsoft.Json模組來處理JSON資料。
Line Notify 是 LINE 提供的一個服務,讓您可以透過 API 傳送訊息到您的 LINE 好友或群組。在這篇教學文章中,我們將介紹如何使用 C# 透過 Line Notify 服務傳送訊息,同時確保連線是使用 TLS 1.2以上加密。
在這篇教學中,我們將會學習如何使用 C# 語言再設定的時間動作,模擬批次自動化功能。使用 System.Windows.Forms.Timer 來達到這個目的。同時,我們也將會示範如何取得目前時間的不同屬性,像是年份、日期、分鐘等。
在程式設計中,錯誤處理是一個不可或缺的部分。C#提供了強大的錯誤處理機制,讓我們能夠更有效地管理和處理程式執行中可能出現的問題。本篇文章將帶你深入了解如何在C#中捕捉與處理錯誤,確保你的程式在遇到問題時能夠優雅地回應。
在這份教學文章中,我們將一步步示範如何使用C#程式語言和ZXing套件生成一個不顯示資訊的CODE128條碼。這將有助於您在自己的應用程式中生成純條碼圖片,而無需顯示任何附加的文字資訊。
在 C# 中,List 是一個常見且實用的集合類型,可以儲存一組元素並進行各種操作。本篇教學將帶你深入了解如何操作 List 以及進行降冪排序。我們將使用一系列範例程式碼來說明這些概念。
JSON(JavaScript Object Notation)是一種常用的數據交換格式,用於在不同的應用程序之間傳遞結構化數據。在C#中,我們可以使用Newtonsoft.Json模組來處理JSON資料。
Line Notify 是 LINE 提供的一個服務,讓您可以透過 API 傳送訊息到您的 LINE 好友或群組。在這篇教學文章中,我們將介紹如何使用 C# 透過 Line Notify 服務傳送訊息,同時確保連線是使用 TLS 1.2以上加密。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
程式寫久了對執行流程會總有些自以為是的邏輯,而這些自己為是的可能讓你產生難以找尋的Bug.比如說在任何地方return就是直接回到原呼叫端的流程,但是這個return在try block中可能不是想像中的那樣。 以下範例讓我們看看return之後程式跑到那去? // returnInTryBlo
Thumbnail
我問:教師如何透過ChatGPT應用於教學上? 小C回覆: 教師可以透過多種方式利用ChatGPT來提升教學效果。提供一些建議如內容所示。
Thumbnail
WeMo雖然是最早進入共享機車市場,現在反而卻是擴點最慢、網路聲量較弱的存在!沒辦法,行銷預算與資源有限!主要資源必須優先投入強化與鞏固自身的核心競爭力,誰叫WeMo的背後沒有「富爸爸」集團資源可以撐腰。 當WeMo遇上花式行銷與汽機車皆可租的競爭對手,仍專注在「以租代買」的商業目標上。
Thumbnail
關於WeMo的商業模式解構,各項資料來源的依據通通都來自網路的二手資料,透過Google所拼湊而成。若有涉及當時與策略長聊天所提到的內容,則不會放置於九宮格中。另外,關於商業模式九宮格的各構面說明,網路上都找得到答案與範例,因此這邊也不再贅言解釋,而是直接將我所蒐集到的資訊彙整成各項重點。
Thumbnail
以下會舉一個簡單的生活例子 (Inherit 繼承) 以顯示出Inheritance 的基本用法, 以下供各位參考: 相關頁面: C#繼承 – Inheritance 繼承 的基本用法 – 加入 for loop, if, Array, Collection的例子
string SrcStr = "admin"; string[] UserNameCvt = SrcStr.Split(','); Roles.AddUsersToRole(UserNameCvt, "Administrator"); 註記: 網路上較少此種例子,多為string[] to S
Thumbnail
可能包含敏感內容
如果你有關注台灣媒體,就會知道安心亞是全台首位公開穿C字褲的女藝人,那時才2009年,跟現在相比之下算是民風更為保守的年代,一方面真的很佩服她的勇氣,另一方面又會覺得:穿C字褲有什麼好處呢?其實C字褲並不是大眾印象中跟情色畫上等號的東西,反而像是丁字褲的升級版而已,都能拿來做隱藏痕跡使用。希望這篇文
Thumbnail
C世代(Connected Generation, 連接世代)是美容保養品-網購的主力──了解他們的特質,才能讓保養品網路行銷大賣... 隨著智慧裝置普及,全球「網路購物」市場高速增長(根據eMarketer統計:全球零售電子商務銷售額,2017年為1.357萬億美元,預估至2021年將達3.554
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
程式寫久了對執行流程會總有些自以為是的邏輯,而這些自己為是的可能讓你產生難以找尋的Bug.比如說在任何地方return就是直接回到原呼叫端的流程,但是這個return在try block中可能不是想像中的那樣。 以下範例讓我們看看return之後程式跑到那去? // returnInTryBlo
Thumbnail
我問:教師如何透過ChatGPT應用於教學上? 小C回覆: 教師可以透過多種方式利用ChatGPT來提升教學效果。提供一些建議如內容所示。
Thumbnail
WeMo雖然是最早進入共享機車市場,現在反而卻是擴點最慢、網路聲量較弱的存在!沒辦法,行銷預算與資源有限!主要資源必須優先投入強化與鞏固自身的核心競爭力,誰叫WeMo的背後沒有「富爸爸」集團資源可以撐腰。 當WeMo遇上花式行銷與汽機車皆可租的競爭對手,仍專注在「以租代買」的商業目標上。
Thumbnail
關於WeMo的商業模式解構,各項資料來源的依據通通都來自網路的二手資料,透過Google所拼湊而成。若有涉及當時與策略長聊天所提到的內容,則不會放置於九宮格中。另外,關於商業模式九宮格的各構面說明,網路上都找得到答案與範例,因此這邊也不再贅言解釋,而是直接將我所蒐集到的資訊彙整成各項重點。
Thumbnail
以下會舉一個簡單的生活例子 (Inherit 繼承) 以顯示出Inheritance 的基本用法, 以下供各位參考: 相關頁面: C#繼承 – Inheritance 繼承 的基本用法 – 加入 for loop, if, Array, Collection的例子
string SrcStr = "admin"; string[] UserNameCvt = SrcStr.Split(','); Roles.AddUsersToRole(UserNameCvt, "Administrator"); 註記: 網路上較少此種例子,多為string[] to S
Thumbnail
可能包含敏感內容
如果你有關注台灣媒體,就會知道安心亞是全台首位公開穿C字褲的女藝人,那時才2009年,跟現在相比之下算是民風更為保守的年代,一方面真的很佩服她的勇氣,另一方面又會覺得:穿C字褲有什麼好處呢?其實C字褲並不是大眾印象中跟情色畫上等號的東西,反而像是丁字褲的升級版而已,都能拿來做隱藏痕跡使用。希望這篇文
Thumbnail
C世代(Connected Generation, 連接世代)是美容保養品-網購的主力──了解他們的特質,才能讓保養品網路行銷大賣... 隨著智慧裝置普及,全球「網路購物」市場高速增長(根據eMarketer統計:全球零售電子商務銷售額,2017年為1.357萬億美元,預估至2021年將達3.554