Winform開發中的窗體重複及靈活切換問題

2022-06-01 05:15:07 字數 879 閱讀 3634

1.問題引入

在專案中需要實現主窗體點選按鈕後開啟子窗體,但是如果不限制的話每次點選都會開啟乙個新窗體,使用者體驗不好還浪費記憶體。所以這裡要做的是限制每個子窗體只可以開啟一次,如果開啟後沒有關閉子窗體或者子窗體被最小化了,就直接把已開啟的窗體啟用並置頂顯示。同時還要滿足不同的子窗體是可以共存的,也就是只能同時有乙個子窗體a,子窗體b,子窗體c……但是子窗體abc之間是可以同時存在並互相切換的。

2.解決思路

這裡我的做法是寫兩個方法:showopenform()用來啟用已開啟的窗體,同時返回boolean值對應當前窗體的開啟狀態,newform()用於第一次開啟新窗體的時候例項化窗體物件,並設定相關引數。

3.參考**

整體結構

showopenform()方法:

1

private boolean showopenform(string

frmname)213

return

false;//

返回false說明窗體已開啟

14} 15}

16return

true;//

已開啟的窗體裡沒有作為引數傳遞的窗體,則返回true

17 }

newform()方法:

1

private

void

newform(form objform)

2

示例click事件:

1

private

void tsbvoucherquery_click(object

sender, eventargs e)

27 }

winform中實現不重複建立窗體

晚上有問了個問題,通過button的click事件,例項化乙個窗體,並show 當我多次點選button時,會產生多個窗體。請問怎麼解決這個問題?不想通過設定button的enable false來解決這個問題。其實這也算是乙個比較實際的問題,有回答說可以使用模式窗體,呵呵,稍微想了下確實是可以解決...

非常出色的一款WinForm窗體重繪GUI類庫原始碼

基本控制項的演示 scrollbar滾動條 各種圓形進度條 progressbar進度條 mdi演示,仿谷歌瀏覽器 多種 可供選擇 一套專業級別的gui控制項,目前包含了窗體 進度條 滾動條以及mdi多視窗 的實現,其他基本控制項還沒有,但是整個介面非常流暢。原始碼內包含4個專案 hellocsha...

Winform開發之窗體傳值

winform的窗體之間的資料傳遞是開發的必備技術,下面介紹幾種典型的傳值方法 1 建構函式傳值,但這種方法是單向的 推薦 上 先傳值 private void button2 click object sender,eventargs e 接值,對了,這裡需要過載乙個form3的建構函式,然後將拿...