C# TabControl控件中TabPage選項(xiàng)卡切換時(shí)的觸發(fā)事件問(wèn)題
TabControl控件中TabPage選項(xiàng)卡切換時(shí)的觸發(fā)事件
選項(xiàng)卡切換觸發(fā)的是TabControl控件的SelectedIndexChanged事件。
當(dāng)TabControl控件的任何一個(gè)TabPage被點(diǎn)擊或選擇,即發(fā)生SelectedIndexChanged事件事件。
代碼如下:
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { if (tabControl1.SelectedIndex == 0)//也可以判斷tabControl1.SelectedTab.Text的值 { //執(zhí)行相應(yīng)的操作 tabPageSubject.Parent = tabControlExtract;//顯示 } else if (tabControl1.SelectedIndex == 1) { //執(zhí)行相應(yīng)的操作 tabPageSubject.Parent = null; //隱藏選項(xiàng)卡tabPageSubject } }
C#選項(xiàng)卡TabControl控件隱藏執(zhí)行選項(xiàng)卡的方式
如下圖窗體:
如果我們想要隱藏tabPage1的話,我們?cè)撛趺醋觥?/p>
首先,tabControl控件由若干個(gè)tabPage成員組成。而這些tabPage成員的屬性中并沒(méi)有visable屬性來(lái)控制它是否隱藏,那么怎么來(lái)實(shí)現(xiàn)隱藏呢?
首先,打開From的代碼生成器:
翻到最下面我們可以看到如下幾行代碼。
這說(shuō)明了tabPage實(shí)際上是個(gè)類。那么我們便可以正對(duì)具體的tabPage1/tabPage2/tabPage3進(jìn)行操作。選項(xiàng)卡隱藏一般不會(huì)再tabControl上。
查看TabPage類的定義如下:
從上面的定義我們看了,有一個(gè)Visible的屬性。也許和選項(xiàng)卡的隱藏有關(guān)。雖然Visible官方說(shuō)明此成員對(duì)控件無(wú)意義。
但是經(jīng)過(guò)探索,發(fā)現(xiàn)他還是可以用的如下:
我們?cè)趖abPage1放一個(gè)Button控件便于觀察。
將隱藏和顯示兩個(gè)按鈕編寫Click時(shí)間如下:
經(jīng)過(guò)試驗(yàn)可知,Visble屬性還是有效果的,只不過(guò)效果與我們想要的不太一樣。
當(dāng)點(diǎn)擊隱藏按鈕時(shí)如下:Button依靠的容器消失了。但是tabPage選項(xiàng)卡還在?。。?/p>
當(dāng)我們點(diǎn)擊顯示按鈕時(shí)如下:Button與其依符的容器又顯示出來(lái)了?。?!
那么有沒(méi)有其他辦法呢?
綜合網(wǎng)上諸多的辦法,有一種比較方便就是利用TabPage類中的Parent屬性設(shè)置TabPage成員依靠的父類容器即可。
具體實(shí)現(xiàn)如下:
利用Parent屬性能夠?qū)崿F(xiàn)選項(xiàng)卡隱藏與顯示。
狀態(tài)如下:
那么為什么設(shè)置Parent屬性就能夠?qū)崿F(xiàn)隱藏呢?
經(jīng)過(guò)追蹤發(fā)現(xiàn)TabPage的Parent屬性實(shí)際在繼承鏈中的Control類中。
換言之Parent是Control類的屬性。TabPage類是繼承Control類的。而Parent屬性的解釋如下:
Parent屬性是控件的父容器。基本上每個(gè)控件都有個(gè)父容器。這是他們的依附的區(qū)域。如果父容器為空的話,控件必然無(wú)法依附,自然也就不能顯示出來(lái)了。
窗體From是沒(méi)有Parent父容器屬性的,因?yàn)樗亲畹讓拥娜萜鳎。。?/p>
由于每個(gè)控件都有Parent,同理我們可以通過(guò)Parent屬性來(lái)控制任意控件的顯示與否。
如下,我們可以通過(guò)設(shè)置“顯示”按鈕的Parent屬性來(lái)設(shè)置隱藏。
如下:
當(dāng)隱藏按鈕按下的時(shí)候就設(shè)置顯示按鈕的父容器為空。
下面試驗(yàn)一下:
如下,設(shè)置成功??!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
WinForm中變Enter鍵為Tab鍵實(shí)現(xiàn)焦點(diǎn)轉(zhuǎn)移的方法
這篇文章主要介紹了WinForm中變Enter鍵為Tab鍵實(shí)現(xiàn)焦點(diǎn)轉(zhuǎn)移的方法,主要通過(guò)一個(gè)ControlTools類來(lái)實(shí)現(xiàn)該功能,需要的朋友可以參考下2014-08-08Unity實(shí)現(xiàn)OCR文字識(shí)別功能
這篇文章主要介紹了通過(guò)Unity接入百度AI接口,實(shí)現(xiàn)OCR文字識(shí)別功能,文中的實(shí)現(xiàn)步驟講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定的參考價(jià)值,需要的可以了解一下2022-01-01c# socket網(wǎng)絡(luò)編程接收發(fā)送數(shù)據(jù)示例代碼
這篇文章主要介紹了c# socket網(wǎng)絡(luò)編程,server端接收,client端發(fā)送數(shù)據(jù),大家參考使用吧2013-12-12WPF ProgressBar實(shí)現(xiàn)實(shí)時(shí)進(jìn)度效果
這篇文章主要介紹了WPF ProgressBar實(shí)現(xiàn)實(shí)時(shí)進(jìn)度效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12C#判斷數(shù)據(jù)類型的簡(jiǎn)單示例代碼
本篇文章要是對(duì)C#中判斷數(shù)據(jù)類型的簡(jiǎn)單示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01C#自動(dòng)生成漂亮的水晶效果頭像的實(shí)現(xiàn)代碼
這篇文章主要介紹了C#自動(dòng)生成漂亮的水晶效果頭像的實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2013-12-12