請問 winform的父窗體中怎樣判斷子窗是否存在

2022-12-20 06:55:12 字數 3289 閱讀 9290

1樓:匿名使用者

這就是經典的“單利模式”,解決方法早有人總結出來了,給你舉個詳細的例子:

兩個窗體:父窗體(parentform)子窗體(childform),點選父窗體中的按鈕只彈出一個彈出子窗體

1.修改子窗體**

1.1將子窗體的建構函式改為private(這樣就不能隨便去new了)

private childform()

1.2在子窗體中新增一個靜態的私有變數,型別就是子窗體型別

private static childform childfrominstanc;

1.3構建該私有靜態欄位childfrominstanc的靜態屬性childfrominstanc(用來控制 childfrominstanc欄位的值)

public static childform childfrominstanc

return childfrominstanc;

//返回的childfrominstanc(子窗體存在時返回的是null,關閉了(isdisposed為true)或者第一次開啟子窗體返回一個childform例項)}}

2.在父窗體中呼叫

按鈕的單擊事件新增下面**:

private void btnshowchildform_click(object sender, eventargs e)

}完整**:

子窗體public partial class childform : form

private static childform childfrominstanc;

public static childform childfrominstanc

return childfrominstanc;

//返回的childfrominstanc(子窗體存在時返回的是null,關閉了(isdisposed為true)或者第一次開啟子窗體返回一個childform例項)}}

}父窗體:

private void btnshowchildform_click(object sender, eventargs e)

}說的夠詳細了吧?嘿嘿

2樓:

父窗體定義一個成員變數~判斷是否為null或在不為null的情況下是否disposed

winform怎麼判斷子窗體是由哪個父窗體開啟?

3樓:匿名使用者

你可以在子窗體里加一個屬性。父窗體開啟子窗體的時候傳一個標識過去。表示是哪一個父窗體。

4樓:匿名使用者

this.owner

c# winform中關於父窗體的一些子窗體佈局的問題

5樓:匿名使用者

最小化所有窗體好像可以通過遍歷父窗體的子窗體,判斷子窗體的窗體狀態然後把之最小化

6樓:

private void 新增子窗體toolstripmenuitem_click(object sender, eventargs e)

private void 垂直toolstripmenuitem_click(object sender, eventargs e)

private void 水平toolstripmenuitem_click(object sender, eventargs e)

private void 層疊toolstripmenuitem_click(object sender, eventargs e)

c# winform 父窗體呼叫子窗體問題

7樓:落月

首先,在form1開啟form2的時候,把form1的引用傳給form2,**如下

//form1中

form2 f2=new form2(this);

f2.show();

//form2的建構函式前和建構函式中:

form1 f1;

public form2(form1 param)//開啟form3的時候:

form3 f3=new form3();

f3.mdiparent=f1;

f3.show();

如果有疑問可以追問~

8樓:有你們真好

先建兩個窗體form1 ,form2,在form1的load事件中新增**form2 frm2=new form2()

frm2.show();

樓主試試!

9樓:我的但是

你這是要做什麼啊!f3的父窗體是f2 怎麼要變成f1?

winform 怎麼讓子窗體顯示在主窗體上?

10樓:匿名使用者

mdi子窗體肯定是現實在父窗體的裡面,你說的上面是什麼意思?只能開啟同一個子窗體的**:private bool isin(form f)

return false;

}把子窗體傳進去即可

11樓:山水阿銳

新建一個例項。

例項.showdialog()

private void 圖書資訊維護toolstripmenuitem_click(object sender, eventargs e)

12樓:匿名使用者

private void 圖書資訊維護toolstripmenuitem_click(object sender, eventargs e)

c# 怎麼分辨別子窗體與父窗體 、show麼?普通窗體非mdi 5

13樓:憋不住事兒

看你的意思好像只是窗體之間的跳轉,從窗體1點選某個按鈕什麼的彈出窗體2,並不是窗體2包含在窗體1裡是吧。傳值,如果要做窗體1的某些資料傳到窗體2,就在窗體2裡用public宣告對應的變數,在窗體1跳轉到窗體2的方法裡,你肯定要宣告窗體2的物件的對吧,這時候就用:

窗體2的物件名.窗體2中宣告的變數 = 值;這個賦值操作要寫在show方法之前。能明白不?

14樓:匿名使用者

子視窗在建立的時候將父視窗作為parent屬性傳入,就可以訪問父視窗中的public內容

父視窗中定義子視窗變數就可以訪問子視窗內容

15樓:隆教

你假設一個資料,看它的最終結束點是在哪個窗體,就像你建立一個視窗,裡面的所有視窗類都可以看做是他的子窗體,最後視窗類的傳值總是在為這個from做一點改變,

C中的winform窗體怎麼獲得系統當前時間

datetime dt datetime.now 後面dt根據你的需要取就行了如dt.tolongdatestring tostring 輸出格式是 年 月 日 datetime.now tostring 通過使用datetime類 初學c 怎麼在一個窗體上一直顯示當前時間?用時間空間,判斷唄,和你...

如何將子窗體中的值傳到父窗體的DataGridView裡

方法1 使用資料庫,子窗體儲存到庫中,父窗體從庫中調取相應的資料 方法2 設定 frm子窗體.btn儲存按鈕.dialogresult dialogresult.ok 子窗體儲存按鈕單擊事件下儲存姓名性別年齡資訊到一個公共變數 或者直接把三個textbox的private屬性改為public,不過不...

c窗體之間傳遞資料,C 中Form窗體之間怎麼傳值?

form1 private void button1 click object sender,eventargs e form2 private string text public form2 string str private void form2 load object sender,eve...