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...