c 中限制MDI子窗體重複開啟

2025-04-17 10:25:25 字數 3924 閱讀 9038

1樓:網友

在開啟事件中直接檢測是否已經開啟此mdi窗體/ 是否已經開啟了?(用循鬥租環來判斷)

foreach (form childrenform in/檢測是不是當前子窗體名稱。

if ( ==子窗體名稱")

是的話就是把他顯示。

true;並空喊兆啟用該窗體。

return;

下面是開啟子窗體。

form1 childrenform = new form1();

this;這樣也行:frmpurvey frmp = new frmpurvey();建立要開啟的窗滲脊體物件。

bool isopen = true;

foreach (form frm in 遍歷已開啟的mdiif ( ==

賦予焦點。 ;//設定窗體最大化。

isopen = false;

break;

if (isopen)//如果沒有找到相同窗體則開啟新窗體。

this;//設定父窗體。;

2樓:網友

這個估計挺簡單的,如果你是通過選單來開啟 mdi 窗世譁口的話,因為選單有「選侍返耐擇/不選擇」的功能嘛,你可以老春通過這個功能來確定選單對應的 mdi 視窗是否已經開啟啊。

c# mdi相同的子窗體只能開啟乙個,不同的子窗體可開啟多個,

3樓:網友

那肯定啊,除非你在new乙個該視窗的物件就行了。

你肯定引用了同乙個物件。

c#下子父窗體怎麼判斷子窗體是否被開啟,防止重複開啟?

4樓:鎮玟公叔仲

給你個思路在子窗體裡定義乙個全域性靜態變數值為0在父窗體的按鈕裡寫開啟子視窗方法,在判斷子窗體全域性變數裡的值是否等於1,如果是1,則開啟,為0,則沒開啟過,再加一句修改子窗體的該全域性變數值為1,關閉子窗體的時候修改變數值為0.,就這樣。

很容易的。

5樓:難道回不去了嗎

我試了一下,「龍得彩雲魚得水」的方法可以。

6樓:網友

定義乙個bool型的變數。

bool a = true;

private void button1_click(object sender, eventargs e)}

c#中關於子類視窗重複開啟的問題

7樓:

窗體有個屬性acceotbutton你把它關聯到,你的控制項就可以了,關於窗體代開問題,你可以家判斷,如果本窗體已經開啟,則不能再次開啟。

foreach (form. childrenform. in 或者frmpurvey frmp = new frmpurvey();//建立要開啟的窗體物件。

bool isopen = true;

foreach (form. frm in 遍歷已開啟的mdi}if (isopen)//如果沒有找到相同窗體則開啟新窗體{ = this;//設定父窗體;

8樓:網友

先說回車的問題吧,每乙個form都有乙個acceptbutton屬性,你在這屬性上設定事件設定直接登入事件就行了,你看下屬性就明白了。

子視窗只開啟一次,你用方法,這方法要求必須處理好了當前視窗才能回到原視窗去,和有區別的,你試下就知道了。

9樓:方虹英

方法一:

設定成模式窗體啊!

form2 f2 = new form2();

方法二:public static form2 f2 = null;//public static form2 show()return f2;

private void form2_formclosing(object sender, formclosingeventargs e)

上述是子窗體的。

你是說按enter把就可以登入吧那就是窗體的acceptbutton屬性啊!把裡面添上你想要的按鈕名字。

10樓:犄角桃

mdi子視窗建立static靜態物件 這樣才能保證每次例項化的都是同一物件。

否則 每次都是新建乙個子窗體開啟了。

form屬性中加上 defaultbutton="btnsubmit"

c#如何禁止重複顯示同乙個窗體

11樓:網友

你在點選的時候 判斷一下你點選的窗體是否處於顯示狀態就哦了唄。

12樓:網友

主窗體:(假設叫做form1)

public static form2 f2;//宣告窗體類靜態變數private void button1_click(object sender, eventargs e)

elseform2子窗體:

子窗體的關閉事件。

private void form2_formclosing(object sender, formclosingeventargs e)

13樓:豬的全部

;//如此來,在這個視窗未關閉之前,休想再次開啟其他。

簡單明瞭,接分!

14樓:網友

1把那個winform做成模態的 沒有點確定or取消不能做別的。

2winform form1_load()裡判斷上乙個是不是還在 在就以存在」);然後返回or退出。

15樓:網友

假定:你的窗體名稱為:form1

foreach (form form in}form1 f = new form1();

this;這樣就ok了!

16樓:小羊說程式設計

用一句**可以比上述的更好 而且也可實現你說的那個功能。

求c#中當mdi裡開啟乙個子窗體,先前開啟子窗體自動關閉的**

17樓:匿名使用者

在mdi父窗體裡 載入子窗體的事件中把其他子窗體關閉。

18樓:匿名使用者

例項話的時候檢查是否已經開啟了,可以用單例模式解決。

c#如何避免mdi重複開啟

19樓:網友

把窗畢頌物件設為類全域性變數。

formmain窗體。

public static form1 form1 = null;

開啟窗體。private void button1_click(object sender, eventargs e)

如數鄭 if (form1 ==null)form1 = new form1 ()

form1 .mdiparent = this;

渣頌 form1 .show();

else form1 .activate();

form1窗體。

窗體關閉事件中寫入。

private void form1_formclosed(object sender, formclosedeventargs e)

null;

20樓:網友

得再闡述下,更詳細的需求。比如在什麼場合,要達到什麼樣的目的。

在c#中 如何讓mdi的子窗體不重複

21樓:網友

foreach (form froms in )//獲取mid裡的所有子窗體。

if (froms is form2)

判斷是否有form2

/獲得焦點。

return;//退出過程。

沒有form2就show 乙個出來。

form2 f = new form2();

this;;

C 2019中,如何在窗體中新增繼承窗體?本人是新手,還請多多指教!謝謝

datagridview1 cellvaluechanged,當單元格內容時發生 有很多事件可以供你選擇,你可以自己先研究一下。vs本身就是一個便利的工具,他會提供給程式設計師很多方法。只是看你會不會用,你的思路如何了。using system.windows.forms using devexpr...

C動態新增控制元件textbox,求教 C 窗體中動態新增了Panel,再如何動態的在Panel中新增文字框控制元件呢?

textbox txt new textbox string s private void button1 click object sender,eventargs e private void form1 load object sender,eventargs e 這話問的 你希望 s 是什麼...

C窗體中textbox顯示一條access中查詢的某個資訊記錄,並點選button時候,將原來值更新

訂購textbox的lostfocus事件,在事件方法中,取得textbox的文字,然後修改資料庫值 sql語句應該沒問題吧?update mytable set name 新的文字 where id 001 那你需要在button中寫針對資料庫的更新事件 下面這個是更新用的sql語句 update...